public void ShouldGetEventsForAggregate() { var aggId = Guid.NewGuid(); var aggregateRoot = new TestDomainObject(aggId); _domainRepository.Save(aggregateRoot); var retrievedAggregateRoot = _domainRepository.Get<TestDomainObject>(aggId); Assert.That(retrievedAggregateRoot.Version, Is.EqualTo(1)); }
public void ShouldGetEventsForAggregate() { var aggId = Guid.NewGuid(); var aggregateRoot = new TestDomainObject(aggId); _domainRepository.Save(aggregateRoot); var retrievedAggregateRoot = _domainRepository.Get <TestDomainObject>(aggId); Assert.That(retrievedAggregateRoot.Version, Is.EqualTo(1)); }
public void should_not_be_equal_if_ids_are_different() { var entity1 = new TestDomainObject { ID = 1 }; var entity2 = new TestDomainObject { ID = 2 }; entity1.Should().NotBe(entity2); }
public void should_be_equal_if_ids_are_equal() { var entity1 = new TestDomainObject { ID = 1 }; var entity2 = new TestDomainObject { ID = 1 }; entity1.Should().Be(entity2); }
public async Task should_successfully_create_a_aggregate_root() { // GIVEN var obj = TestDomainObject.Create(); obj.Increase(); // WHEN var events = await _sut.Save(WriteRepository.DefaultKeyTaker, obj); // THEN events.Should().HaveCount(2); }
public WhenVisiting() { TestDomainObject sut = GetSut("11"); var @event = new TestEvent(); sut.ApplyEvent(@event); sut.RaiseEvent(); VisitorState = sut.State <SampleVisitor>(); VisitorStateWithSuppres = sut.State <SampleVisitor>(true); }
public void GetPropertyAccessExpression_BidirectionalMultipleRelation() { var propertyAccessor = _bidirectionalMultipleRelationReflector .GetPropertyAccessExpression(typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface)).Compile(); using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope()) { var obj = MixinTarget_AnnotatedPropertiesPartOfInterface.NewObject(); var propertyValue = TestDomainObject.NewObject(); ((IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface)obj).BidirectionalMultiplePropertyWithMandatoryAttribute.Add(propertyValue); var result = propertyAccessor(obj); Assert.That(result, Is.EqualTo(new[] { propertyValue })); } }
public void ShouldPersistEventsToDatabase() { var aggId = Guid.NewGuid(); var aggregateRoot = new TestDomainObject(aggId); _domainRepository.Save(aggregateRoot); var client = new MongoClient(_connectionString); var server = client.GetServer(); var database = server.GetDatabase(_database); var collection = database.GetCollection<DomainEventCollection>(MongoEventPersistence.DOMAINEVENT_COLLECTION); var query = Query.EQ("AggregateId", aggId); var entity = collection.FindOne(query); Assert.That(entity.DomainEvents.Count, Is.EqualTo(1)); Assert.That(entity.DomainEvents[0], Is.TypeOf<TestDomainEvent>()); }
public async Task should_successfully_read_an_aggregate_root() { // GIVEN var obj = TestDomainObject.Create(); obj.Increase(); obj.Increase(); obj.Increase(); await _sut.Save(WriteRepository.DefaultKeyTaker, obj); // WHEN var loaded = await _sut.GetOrDefault <TestDomainObject>(obj.Id.ToString()); // THEN loaded !.Counter.Should().Be(3); }
public void CommitValidate_WithValidationFailures() { using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope()) { var domainObject1 = DomainObjectWithoutAnnotatedProperties.NewObject(); var domainObject2 = TestDomainObject.NewObject(); var domainObject3 = DomainObjectWithoutAnnotatedProperties.NewObject(); var persistableData1 = new PersistableData( domainObject1, StateType.New, DataContainerObjectMother.Create(domainObject1), new IRelationEndPoint[0]); var persistableData2 = new PersistableData( domainObject2, StateType.Changed, DataContainerObjectMother.Create(domainObject2), new IRelationEndPoint[0]); var persistableData3 = new PersistableData( domainObject3, StateType.Deleted, DataContainerObjectMother.Create(domainObject3), new IRelationEndPoint[0]); _validatorBuilderMock .Expect(mock => mock.BuildValidator(typeof(DomainObjectWithoutAnnotatedProperties))) .Return(_validatorMock1); _validatorBuilderMock .Expect(mock => mock.BuildValidator(typeof(TestDomainObject))) .Return(_validatorMock2); var validationFailure1 = new ValidationFailure("Test1", "Error1"); validationFailure1.SetValidatedInstance(domainObject1); var validationFailure2 = new ValidationFailure("Test2", "Error2"); validationFailure2.SetValidatedInstance(domainObject1); var validationFailure3 = new ValidationFailure("Test3", "Error3"); _validatorMock1.Expect(mock => mock.Validate(domainObject1)).Return(new ValidationResult(new [] { validationFailure1 })); _validatorMock2.Expect(mock => mock.Validate(domainObject2)).Return(new ValidationResult(new [] { validationFailure2, validationFailure3 })); _extension.CommitValidate(ClientTransaction.Current, Array.AsReadOnly(new[] { persistableData1, persistableData2, persistableData3 })); _validatorBuilderMock.VerifyAllExpectations(); _validatorMock1.VerifyAllExpectations(); _validatorMock2.VerifyAllExpectations(); } }
public void ShouldPersistEventsToDatabase() { var aggId = Guid.NewGuid(); var aggregateRoot = new TestDomainObject(aggId); _domainRepository.Save(aggregateRoot); var client = new MongoClient(_connectionString); var server = client.GetServer(); var database = server.GetDatabase(_database); var collection = database.GetCollection <DomainEventCollection>(MongoEventPersistence.DOMAINEVENT_COLLECTION); var query = Query.EQ("AggregateId", aggId); var entity = collection.FindOne(query); Assert.That(entity.DomainEvents.Count, Is.EqualTo(1)); Assert.That(entity.DomainEvents[0], Is.TypeOf <TestDomainEvent>()); }
public async Task should_successfully_update_an_aggregate_root() { // GIVEN var obj = TestDomainObject.Create(); obj.Increase(); await _sut.Save(WriteRepository.DefaultKeyTaker, obj); var loaded = await _sut.GetOrDefault <TestDomainObject>(obj.Id.ToString()); loaded !.Increase(); // WHEN var events = await _sut.Save(WriteRepository.DefaultKeyTaker, loaded); // THEN events.Should().HaveCount(1); }
public void ShouldPersistEventsToDatabase() { var aggId = Guid.NewGuid(); var aggregateRoot = new TestDomainObject(aggId); _domainRepository.Save(aggregateRoot); using (var connection = new SqlConnection(_connectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "Select COUNT(*) from Events"; var count = (int)command.ExecuteScalar(); Assert.That(count, Is.EqualTo(1)); } } }
public WhenVisiting() { TestDomainObject sut = GetSut("11"); var @event = new TestEvent(); var events = new List <IEvent> { @event }; sut.ApplyEvents(events, null); sut.ApplyConfig(new EventSourceConfiguration { StateActivator = new ActivatorDomainObjectActivator() }); sut.RaiseEvent(); VisitorState = sut.State <SampleVisitor>(); VisitorStateWithSuppres = sut.State <SampleVisitor>(true); }
public WhenCreatingADomainObjectByType() { ActivatorDomainObjectActivator sut = GetSut(); domainObject = sut.Resolve(typeof(TestDomainObject), id) as TestDomainObject; }
public WhenCreatingADomainObjectGeneric() { ActivatorDomainObjectActivator sut = GetSut(); domainObject = sut.Resolve <TestDomainObject>(id); }