public void WithCorrectedNisCode() { var importMunicipalityFromCrab = _fixture .Build <ImportMunicipalityFromCrab>() .With(x => x.PrimaryLanguage, CrabLanguage.Dutch) .With(x => x.SecondaryLanguage, (CrabLanguage?)null) .With(x => x.FacilityLanguage, (CrabLanguage?)null) .With(x => x.Lifetime, new CrabLifetime(_fixture.Create <LocalDateTime>(), null)) .With(x => x.Modification, CrabModification.Correction) .With(x => x.Geometry, (WkbGeometry)null) .With(x => x.NisCode, new NisCode(_fixture.Create <string>())) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); var municipalityNisCodeWasCorrected = new MunicipalityNisCodeWasCorrected(_municipalityId, importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityNisCodeWasCorrected).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, _fixture.Create <MunicipalityNisCodeWasDefined>(), _fixture.Create <MunicipalityOfficialLanguageWasAdded>(), _fixture.Create <MunicipalityBecameCurrent>()) .When(importMunicipalityFromCrab) .Then(_municipalityId, municipalityNisCodeWasCorrected, importMunicipalityFromCrab.ToLegacyEvent())); }
public void WithCorrectedNameAndMuncipalityHasName(CrabLanguage language, Language expectedLanguage) { var newName = _fixture.Create <string>(); var municipalityNameFromCrab = _fixture .Build <ImportMunicipalityNameFromCrab>() .With(x => x.Modification, CrabModification.Correction) .With(x => x.MunicipalityName, new CrabMunicipalityName(newName, language)) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, _nisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); var municipalityNameWasCorrected = new MunicipalityNameWasCorrected(_municipalityId, new MunicipalityName(newName, expectedLanguage)); ((ISetProvenance)municipalityNameWasCorrected).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, _fixture.Create <MunicipalityWasNamed>()) .When(municipalityNameFromCrab) .Then(_municipalityId, municipalityNameWasCorrected, municipalityNameFromCrab.ToLegacyEvent())); }
public void WithNewNameAsNullAndCorrectionAndMuncipalityHasName(CrabLanguage language, Language expectedLanguage) { var municipalityNameFromCrab = _fixture .Build <ImportMunicipalityNameFromCrab>() .With(x => x.Modification, CrabModification.Correction) .With(x => x.MunicipalityName, new CrabMunicipalityName(null, language)) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, _nisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); var municipalityNameWasCorrectedToCleared = new MunicipalityNameWasCorrectedToCleared(_municipalityId, expectedLanguage); ((ISetProvenance)municipalityNameWasCorrectedToCleared).SetProvenance(CreateProvenance(1)); var municipalityWasNamed = new MunicipalityWasNamed(_municipalityId, new MunicipalityName(_fixture.Create <string>(), expectedLanguage)); ((ISetProvenance)municipalityWasNamed).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, municipalityWasNamed) .When(municipalityNameFromCrab) .Throws(new NoNameException("Cannot give a municipality an empty name."))); }
public void WithName(CrabLanguage language, Language expectedLanguage) { var name = _fixture.Create <string>(); var municipalityNameFromCrab = _fixture .Build <ImportMunicipalityNameFromCrab>() .With(x => x.MunicipalityName, new CrabMunicipalityName(name, language)) .Create(); var provenance = new MunicipalityProvenanceFactory().CreateFrom(1, false, municipalityNameFromCrab.Timestamp, municipalityNameFromCrab.Modification, municipalityNameFromCrab.Operator, municipalityNameFromCrab.Organisation); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, _nisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(provenance); var municipalityWasNamed = new MunicipalityWasNamed(_municipalityId, new MunicipalityName(name, expectedLanguage)); ((ISetProvenance)municipalityWasNamed).SetProvenance(provenance); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered) .When(municipalityNameFromCrab) .Then(_municipalityId, municipalityWasNamed, municipalityNameFromCrab.ToLegacyEvent())); }
public async Task Given_MunicipalityWasRegistered_Then_expected_item_is_added() { var projection = new MunicipalityListProjections(); var resolver = ConcurrentResolve.WhenEqualToHandlerMessageType(projection.Handlers); var municipalityId = Guid.NewGuid(); var nisCode = "123"; var municipalityWasRegistered = new MunicipalityWasRegistered(new MunicipalityId(municipalityId), new NisCode(nisCode)); ((ISetProvenance)municipalityWasRegistered).SetProvenance(_provenance); await new ConnectedProjectionScenario <LegacyContext>(resolver) .Given( new Envelope <MunicipalityWasRegistered>(new Envelope( municipalityWasRegistered, EmptyMetadata))) .Verify(async context => { var municipality = await context.MunicipalityList.FirstAsync(a => a.MunicipalityId == municipalityId); municipality.MunicipalityId .Should() .Be(municipalityId); municipality.NisCode .Should() .Be(nisCode); return(VerificationResult.Pass()); }) .Assert(); }
public void With2LanguagesAndInfiniteLifeTime() { var importMunicipalityFromCrab = _fixture .Build <ImportMunicipalityFromCrab>() .With(x => x.PrimaryLanguage, CrabLanguage.Dutch) .With(x => x.SecondaryLanguage, CrabLanguage.French) .With(x => x.FacilityLanguage, (CrabLanguage?)null) .With(x => x.Lifetime, new CrabLifetime(_fixture.Create <LocalDateTime>(), null)) .With(x => x.Geometry, new WkbGeometry(GeometryHelpers.ExampleWkb)) .Create(); var provenance = new MunicipalityProvenanceFactory().CreateFrom(1, false, importMunicipalityFromCrab.Timestamp, importMunicipalityFromCrab.Modification, importMunicipalityFromCrab.Operator, importMunicipalityFromCrab.Organisation); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(provenance); var municipalityBecameCurrent = new MunicipalityBecameCurrent(_municipalityId); ((ISetProvenance)municipalityBecameCurrent).SetProvenance(provenance); var municipalityOfficialLanguageWasAdded = new MunicipalityOfficialLanguageWasAdded(_municipalityId, Language.Dutch); ((ISetProvenance)municipalityOfficialLanguageWasAdded).SetProvenance(provenance); var municipalitySecondOfficialLanguageWasAdded = new MunicipalityOfficialLanguageWasAdded(_municipalityId, Language.French); ((ISetProvenance)municipalitySecondOfficialLanguageWasAdded).SetProvenance(provenance); var municipalityWasDrawn = new MunicipalityWasDrawn(_municipalityId, new ExtendedWkbGeometry(GeometryHelpers.ExampleExtendedWkb)); ((ISetProvenance)municipalityWasDrawn).SetProvenance(provenance); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered) .When(importMunicipalityFromCrab) .Then(_municipalityId, municipalityOfficialLanguageWasAdded, municipalitySecondOfficialLanguageWasAdded, municipalityWasDrawn, municipalityBecameCurrent, importMunicipalityFromCrab.ToLegacyEvent())); }
public async Task Given_MunicipalityWasNamed_twice_and_municipality_was_registered_Then_expected_item_is_updated() { var projection = new MunicipalityListProjections(); var resolver = ConcurrentResolve.WhenEqualToHandlerMessageType(projection.Handlers); var crabMunicipalityId = new CrabMunicipalityId(1); var municipalityId = MunicipalityId.CreateFor(crabMunicipalityId); var nisCode = "456"; var municipalityWasRegistered = new MunicipalityWasRegistered(municipalityId, new NisCode(nisCode)); ((ISetProvenance)municipalityWasRegistered).SetProvenance(_provenance); var municipalityWasNamed = new MunicipalityWasNamed(municipalityId, new MunicipalityName("test", Language.Dutch)); ((ISetProvenance)municipalityWasNamed).SetProvenance(_provenance); var wasNamed = new MunicipalityWasNamed(municipalityId, new MunicipalityName("test21", Language.French)); ((ISetProvenance)wasNamed).SetProvenance(_provenance); await new ConnectedProjectionScenario <LegacyContext>(resolver) .Given( new Envelope <MunicipalityWasRegistered>(new Envelope( municipalityWasRegistered, EmptyMetadata)), new Envelope <MunicipalityWasNamed>(new Envelope( municipalityWasNamed, EmptyMetadata)), new Envelope <MunicipalityWasNamed>(new Envelope( wasNamed, EmptyMetadata))) .Verify(async context => { var municipality = await context.MunicipalityList.FirstAsync(a => a.MunicipalityId == municipalityId); municipality.MunicipalityId.Should().Be((Guid)municipalityId); municipality.NameDutch.Should().Be("test"); municipality.NameFrench.Should().Be("test21"); return(VerificationResult.Pass()); }) .Assert(); }
public void WithNoName(CrabLanguage language) { var municipalityNameFromCrab = _fixture .Build <ImportMunicipalityNameFromCrab>() .With(x => x.MunicipalityName, new CrabMunicipalityName(null, language)) .Create(); var provenance = new MunicipalityProvenanceFactory().CreateFrom(1, false, municipalityNameFromCrab.Timestamp, municipalityNameFromCrab.Modification, municipalityNameFromCrab.Operator, municipalityNameFromCrab.Organisation); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, _nisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(provenance); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered) .When(municipalityNameFromCrab) .Throws(new NoNameException("Cannot give a municipality an empty name."))); }
public void WithNoNisCode() { var importMunicipalityFromCrab = _fixture .Build <ImportMunicipalityFromCrab>() .With(x => x.NisCode, (NisCode)null) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, _fixture.Create <MunicipalityNisCodeWasDefined>(), _fixture.Create <MunicipalityBecameCurrent>()) .When(importMunicipalityFromCrab) .Throws(new NoNisCodeException("NisCode of a municipality cannot be empty."))); }
public void ThenMunicipalityIsRegistered() { var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, _importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); var municipalityOfficialLanguageWasAdded = new MunicipalityOfficialLanguageWasAdded(_municipalityId, Language.Dutch); ((ISetProvenance)municipalityOfficialLanguageWasAdded).SetProvenance(CreateProvenance(1)); var municipalitySecondOfficialLanguageWasAdded = new MunicipalityOfficialLanguageWasAdded(_municipalityId, Language.French); ((ISetProvenance)municipalitySecondOfficialLanguageWasAdded).SetProvenance(CreateProvenance(1)); var facilityLanguageWasAdded = new MunicipalityFacilityLanguageWasAdded(_municipalityId, Language.English); ((ISetProvenance)facilityLanguageWasAdded).SetProvenance(CreateProvenance(1)); var municipalityWasDrawn = new MunicipalityWasDrawn(_municipalityId, new ExtendedWkbGeometry(GeometryHelpers.ExampleExtendedWkb)); ((ISetProvenance)municipalityWasDrawn).SetProvenance(CreateProvenance(1)); var municipalityBecameCurrent = new MunicipalityBecameCurrent(_municipalityId); ((ISetProvenance)municipalityBecameCurrent).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .GivenNone() .When(_importMunicipalityFromCrab) .Then(_municipalityId, municipalityWasRegistered, municipalityOfficialLanguageWasAdded, municipalitySecondOfficialLanguageWasAdded, facilityLanguageWasAdded, municipalityWasDrawn, municipalityBecameCurrent, _importMunicipalityFromCrab.ToLegacyEvent())); }
public void WithNewGeometryAsNull() { var importMunicipalityFromCrab = _fixture .Build <ImportMunicipalityFromCrab>() .With(x => x.PrimaryLanguage, CrabLanguage.Dutch) .With(x => x.SecondaryLanguage, (CrabLanguage?)null) .With(x => x.FacilityLanguage, (CrabLanguage?)null) .With(x => x.Lifetime, new CrabLifetime(_fixture.Create <LocalDateTime>(), null)) .With(x => x.Geometry, (WkbGeometry)null) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); var municipalityGeometryWasCleared = new MunicipalityGeometryWasCleared(_municipalityId); ((ISetProvenance)municipalityGeometryWasCleared).SetProvenance(CreateProvenance(1)); var municipalityWasDrawn = new MunicipalityWasDrawn(_municipalityId, new ExtendedWkbGeometry(GeometryHelpers.ExampleExtendedWkb)); ((ISetProvenance)municipalityWasDrawn).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, _fixture.Create <MunicipalityNisCodeWasDefined>(), _fixture.Create <MunicipalityOfficialLanguageWasAdded>(), municipalityWasDrawn, _fixture.Create <MunicipalityBecameCurrent>()) .When(importMunicipalityFromCrab) .Then(_municipalityId, municipalityGeometryWasCleared, importMunicipalityFromCrab.ToLegacyEvent())); }
public void WithNullLanguageAndMuncipalityHasName() { var name = _fixture.Create <string>(); var municipalityNameFromCrab = _fixture .Build <ImportMunicipalityNameFromCrab>() .With(x => x.MunicipalityName, new CrabMunicipalityName(name, null)) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, _nisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, _fixture.Create <MunicipalityWasNamed>()) .When(municipalityNameFromCrab) .Then(_municipalityId, municipalityNameFromCrab.ToLegacyEvent())); }
public async Task Given_MunicipalityDefinedNisCode_Then_nisCode_should_be_changed() { var projection = new MunicipalityListProjections(); var resolver = ConcurrentResolve.WhenEqualToHandlerMessageType(projection.Handlers); var crabMunicipalityId = new CrabMunicipalityId(1); var municipalityId = MunicipalityId.CreateFor(crabMunicipalityId); var nisCode = "456"; var municipalityWasRegistered = new MunicipalityWasRegistered(municipalityId, new NisCode(nisCode)); ((ISetProvenance)municipalityWasRegistered).SetProvenance(_provenance); var municipalityNisCodeWasDefined = new MunicipalityNisCodeWasDefined(municipalityId, new NisCode(nisCode)); ((ISetProvenance)municipalityNisCodeWasDefined).SetProvenance(_provenance); await new ConnectedProjectionScenario <LegacyContext>(resolver) .Given( new Envelope <MunicipalityWasRegistered>(new Envelope( municipalityWasRegistered, EmptyMetadata)), new Envelope <MunicipalityNisCodeWasDefined>(new Envelope( municipalityNisCodeWasDefined, EmptyMetadata))) .Verify(async context => { var municipality = await context.MunicipalityList.FirstAsync(a => a.NisCode == nisCode); municipality.MunicipalityId.Should().Be((Guid)municipalityId); municipality.NisCode.Should().Be(nisCode); return(VerificationResult.Pass()); }) .Assert(); }
public async Task Given_MunicipalityDefinedPrimaryLanguage_Then_expected_item_is_updated() { var projection = new MunicipalityListProjections(); var resolver = ConcurrentResolve.WhenEqualToHandlerMessageType(projection.Handlers); var crabMunicipalityId = new CrabMunicipalityId(1); var municipalityId = MunicipalityId.CreateFor(crabMunicipalityId); var nisCode = "456"; var municipalityWasRegistered = new MunicipalityWasRegistered(municipalityId, new NisCode(nisCode)); ((ISetProvenance)municipalityWasRegistered).SetProvenance(_provenance); var municipalityOfficialLanguageWasAdded = new MunicipalityOfficialLanguageWasAdded(municipalityId, Language.Dutch); ((ISetProvenance)municipalityOfficialLanguageWasAdded).SetProvenance(_provenance); await new ConnectedProjectionScenario <LegacyContext>(resolver) .Given( new Envelope <MunicipalityWasRegistered>(new Envelope( municipalityWasRegistered, EmptyMetadata)), new Envelope <MunicipalityOfficialLanguageWasAdded>(new Envelope( municipalityOfficialLanguageWasAdded, EmptyMetadata))) .Verify(async context => { var municipality = await context.MunicipalityList.FirstAsync(a => a.MunicipalityId == municipalityId); municipality.MunicipalityId.Should().Be((Guid)municipalityId); municipality.OfficialLanguages.Should().AllBeEquivalentTo(Language.Dutch); return(VerificationResult.Pass()); }) .Assert(); }
public void WithFiniteLifeTimeAndMunicipalityIsCurrent() { var retirementDate = _fixture.Create <LocalDateTime>(); var retirementInstant = retirementDate.ToCrabInstant(); var importMunicipalityFromCrab = _fixture .Build <ImportMunicipalityFromCrab>() .With(x => x.PrimaryLanguage, CrabLanguage.Dutch) .With(x => x.SecondaryLanguage, (CrabLanguage?)null) .With(x => x.FacilityLanguage, (CrabLanguage?)null) .With(x => x.Geometry, (WkbGeometry)null) .With(x => x.Lifetime, new CrabLifetime(_fixture.Create <LocalDateTime>(), retirementDate)) .Create(); var municipalityWasRegistered = new MunicipalityWasRegistered(_municipalityId, importMunicipalityFromCrab.NisCode); ((ISetProvenance)municipalityWasRegistered).SetProvenance(CreateProvenance(1)); var municipalityWasRetired = new MunicipalityWasRetired(_municipalityId, new RetirementDate(retirementInstant)); ((ISetProvenance)municipalityWasRetired).SetProvenance(CreateProvenance(1)); Assert( new Scenario() .Given(_municipalityId, municipalityWasRegistered, _fixture.Create <MunicipalityNisCodeWasDefined>(), _fixture.Create <MunicipalityOfficialLanguageWasAdded>(), _fixture.Create <MunicipalityBecameCurrent>()) .When(importMunicipalityFromCrab) .Then(_municipalityId, municipalityWasRetired, importMunicipalityFromCrab.ToLegacyEvent())); }
private void When(MunicipalityWasRegistered @event) { _municipalityId = new MunicipalityId(@event.MunicipalityId); _nisCode = new NisCode(@event.NisCode); }