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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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
            }
        }