Esempio n. 1
0
        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()));
        }
Esempio n. 2
0
        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()));
        }
Esempio n. 3
0
        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();
        }
Esempio n. 6
0
        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.")));
        }
Esempio n. 9
0
        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()));
        }
Esempio n. 11
0
        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()));
        }
Esempio n. 12
0
        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();
        }
Esempio n. 15
0
        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);
 }