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()); }
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()); }