コード例 #1
0
        public async Task Create_duplicate_derived_entity()
        {
            //setup
            var entityId = Guid.NewGuid();
            var request  = FakeCreateDerivedEntityCommand(Guid.Empty, entityId);
            var handler  = new CreateEntitiesCommandHandler <FakeEntityContext>(_transactionService.Object, _propertyResolver.Object, _commandsHelper.Object);

            _treeEdgesCollection
            .Setup(x => x.NodeExists(It.IsAny <Guid>()))
            .Returns(true);

            _treeEdgesCollection
            .Setup(x => x.GetNodes(It.IsAny <IEnumerable <Guid> >()))
            .Returns(new List <EntityNode> {
                new EntityNode()
            });

            //act
            await Assert.ThrowsAsync <EntitiesCreationException>(() => handler.Handle(request, default(CancellationToken)));

            //verify
            _transactionService.Verify(x => x.StartTransaction(), Times.Once());
            _transactionService.Verify(x => x.CommitTransaction(), Times.Never());
            _transactionService.Verify(x => x.AbortTransaction(), Times.Once());

            _treeEdgesCollection.Verify(x => x.Add(It.IsAny <EntityNode>()), Times.Never());
            _derivedEntityCollection.Verify(x => x.Add(It.IsAny <object>()), Times.Never());
            _entityCollection.Verify(x => x.Add(It.IsAny <object>()), Times.Never());
        }
コード例 #2
0
        public async Task Create_derived_entity_ok()
        {
            //setup
            var entityId = Guid.NewGuid();
            var request  = FakeCreateDerivedEntityCommand(Guid.Empty, entityId);
            var handler  = new CreateEntitiesCommandHandler <FakeEntityContext>(_transactionService.Object, _propertyResolver.Object, _commandsHelper.Object);

            _treeEdgesCollection
            .Setup(x => x.NodeExists(It.IsAny <Guid>()))
            .Returns(false);

            _treeEdgesCollection
            .Setup(x => x.GetNodes(It.IsAny <IEnumerable <Guid> >()))
            .Returns(new List <EntityNode>());

            //act
            await handler.Handle(request, default(CancellationToken));

            _transactionService.Verify(x => x.StartTransaction(), Times.Once());
            _transactionService.Verify(x => x.CommitTransaction(), Times.Once());
            _transactionService.Verify(x => x.AbortTransaction(), Times.Never());

            _treeEdgesCollection.Verify(x => x.Add(It.Is <IEnumerable <EntityNode> >(t =>
                                                                                     t.First().ParentId == request.ParentId &&
                                                                                     t.First().EntityId == entityId)), Times.Once());
            _entityCollection.Verify(x => x.Add(It.IsAny <object>()), Times.Never());
            _derivedEntityCollection.Verify(x => x.Add(request.Entities), Times.Once());
        }