You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
55 lines
2.0 KiB
|
|
using Bit.Core.Entities; |
|
using Bit.Core.Enums; |
|
using Bit.Core.OrganizationFeatures.OrganizationCollections; |
|
using Bit.Core.Repositories; |
|
using Bit.Core.Services; |
|
using Bit.Core.Test.AutoFixture.OrganizationFixtures; |
|
using Bit.Test.Common.AutoFixture; |
|
using Bit.Test.Common.AutoFixture.Attributes; |
|
using NSubstitute; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.OrganizationFeatures.OrganizationConnections; |
|
|
|
[SutProviderCustomize] |
|
public class DeleteCollectionCommandTests |
|
{ |
|
|
|
[Theory, BitAutoData] |
|
[OrganizationCustomize] |
|
public async Task DeleteAsync_DeletesCollection(Collection collection, SutProvider<DeleteCollectionCommand> sutProvider) |
|
{ |
|
// Act |
|
await sutProvider.Sut.DeleteAsync(collection); |
|
|
|
// Assert |
|
await sutProvider.GetDependency<ICollectionRepository>().Received().DeleteAsync(collection); |
|
await sutProvider.GetDependency<IEventService>().Received().LogCollectionEventAsync(collection, EventType.Collection_Deleted, Arg.Any<DateTime>()); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
[OrganizationCustomize] |
|
public async Task DeleteManyAsync_DeletesManyCollections(Collection collection, Collection collection2, SutProvider<DeleteCollectionCommand> sutProvider) |
|
{ |
|
// Arrange |
|
var collectionIds = new[] { collection.Id, collection2.Id }; |
|
|
|
sutProvider.GetDependency<ICollectionRepository>() |
|
.GetManyByManyIdsAsync(collectionIds) |
|
.Returns(new List<Collection> { collection, collection2 }); |
|
|
|
// Act |
|
await sutProvider.Sut.DeleteManyAsync(collectionIds); |
|
|
|
// Assert |
|
await sutProvider.GetDependency<ICollectionRepository>().Received() |
|
.DeleteManyAsync(Arg.Is<IEnumerable<Guid>>(ids => ids.SequenceEqual(collectionIds))); |
|
|
|
await sutProvider.GetDependency<IEventService>().Received().LogCollectionEventsAsync( |
|
Arg.Is<IEnumerable<(Collection, EventType, DateTime?)>>(a => |
|
a.All(c => collectionIds.Contains(c.Item1.Id) && c.Item2 == EventType.Collection_Deleted))); |
|
} |
|
|
|
|
|
}
|
|
|