public async Task Handle_NormalValues_ShouldDeleteTree() { // arrange var cancellationToken = new CancellationToken(); var unitOfWorkFactory = new TransactionScopeUnitOfWorkFactory(); var dbContextFactory = new DefaultDbContextFactory(); var classifierTypeRepository = new DbClassifierTypeRepository(dbContextFactory); var classifierTypeService = new DbClassifierTypeService(dbContextFactory, classifierTypeRepository); var generator = new MasterDataDbGenerator(unitOfWorkFactory, dbContextFactory); var handler = new DeleteClassifierTreeHandler(unitOfWorkFactory, dbContextFactory, classifierTypeService); using (var _ = unitOfWorkFactory.Create()) { // arrange await generator.InsertType(HierarchyType.Groups, cancellationToken); var tree2 = await generator.InsertTree("tree2", cancellationToken); // assert - default and second trees exists var trees = await generator.GetTrees(cancellationToken); Assert.AreEqual(2, trees.TotalCount); // act var result = await handler.Handle(new DeleteClassifierTree { UserUid = generator.UserUid, TypeCode = generator.TypeCode, // ReSharper disable once PossibleInvalidOperationException Uids = new [] { tree2.Uid.Value } }, cancellationToken); // assert - link deleted Assert.IsTrue(result.Success); Assert.AreEqual(1, result.AffectedRows); // assert - default hierarchy exists trees = await generator.GetTrees(cancellationToken); Assert.AreEqual(1, trees.TotalCount); Assert.AreEqual(ClassifierTree.DefaultCode, trees.Rows[0].Code); } }
public async Task Handle_ByUid_UpdateClassifierTree() { // arrange var cancellationToken = new CancellationToken(); var unitOfWorkFactory = new TransactionScopeUnitOfWorkFactory(); var dbContextFactory = new DefaultDbContextFactory(); var classifierTypeRepository = new DbClassifierTypeRepository(dbContextFactory); var classifierTypeService = new DbClassifierTypeService(dbContextFactory, classifierTypeRepository); var generator = new MasterDataDbGenerator(unitOfWorkFactory, dbContextFactory); var handler = new UpdateClassifierTreeHandler(unitOfWorkFactory, dbContextFactory, classifierTypeService); using (var _ = unitOfWorkFactory.Create()) { // arrange await generator.InsertType(HierarchyType.Groups, cancellationToken); var trees = await generator.GetTrees(cancellationToken); // act var result = await handler.Handle(new UpdateClassifierTree { UserUid = generator.UserUid, TypeCode = generator.TypeCode, Item = new ClassifierTree { Uid = trees.Rows[0].Uid, Code = ClassifierTree.DefaultCode, Name = "Test Classifier Tree" } }, cancellationToken); // assert Assert.IsNotNull(result); Assert.IsTrue(result.Success); Assert.AreEqual(1, result.AffectedRows); trees = await generator.GetTrees(cancellationToken); Assert.AreEqual(1, trees.TotalCount); Assert.AreEqual("Test Classifier Tree", trees.Rows[0].Name); } }
public async Task Handle_NormalValues_InsertClassifierTree() { // arrange var cancellationToken = new CancellationToken(); var unitOfWorkFactory = new TransactionScopeUnitOfWorkFactory(); var dbContextFactory = new DefaultDbContextFactory(); var classifierTypeRepository = new DbClassifierTypeRepository(dbContextFactory); var classifierTypeService = new DbClassifierTypeService(dbContextFactory, classifierTypeRepository); var generator = new MasterDataDbGenerator(unitOfWorkFactory, dbContextFactory); var handler = new InsertClassifierTreeHandler(unitOfWorkFactory, dbContextFactory, classifierTypeService); using (var _ = unitOfWorkFactory.Create()) { // arrange await generator.InsertType(HierarchyType.Groups, cancellationToken); // act var result = await handler.Handle(new InsertClassifierTree { UserUid = generator.UserUid, TypeCode = generator.TypeCode, Item = new ClassifierTree { Code = "001", Name = "Test Classifier Tree" } }, cancellationToken); // assert Assert.IsNotNull(result); Assert.IsTrue(result.Success); Assert.IsNotNull(result.Uid); Assert.AreNotEqual(Guid.Empty, result.Uid); var trees = await generator.GetTrees(cancellationToken); Assert.AreEqual(2, trees.TotalCount); // one for default tree and second for inserted in test } }