Ejemplo n.º 1
0
        public void WithOvoNumberChanged(
            Fixture fixture,
            OvoNumber ovoNumber,
            Organisation organisation,
            PublicServiceId publicServiceId,
            PublicServiceName publicServiceName,
            PrivateZoneId privateZoneId)
        {
            _mocker.MockOrganisationProvider(ovoNumber, organisation);

            var newOvoNumber    = fixture.Create <OvoNumber>();
            var newOrganisation = fixture.Create <Organisation>();

            _mocker.MockOrganisationProvider(newOvoNumber, newOrganisation);

            Assert(
                new Scenario()
                .Given(publicServiceId,
                       new PublicServiceWasRegistered(publicServiceId, publicServiceName, privateZoneId),
                       new CompetentAuthorityWasAssigned(
                           publicServiceId,
                           organisation.OvoNumber,
                           organisation.Name,
                           organisation.Provenance))
                .When(new UpdatePublicService(publicServiceId, publicServiceName, newOvoNumber, false))
                .Then(publicServiceId,
                      new CompetentAuthorityWasAssigned(
                          publicServiceId,
                          newOrganisation.OvoNumber,
                          newOrganisation.Name,
                          newOrganisation.Provenance)));
        }
Ejemplo n.º 2
0
        private void SetupContext()
        {
            _ovoNumber = new OvoNumber("OVO000015");

            _dataVlaanderenProviderMock = new Mock <IDataVlaanderenProvider>();
            _wegwijsProviderMock        = new Mock <IWegwijsProvider>();

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationAsync(_ovoNumber))
            .ThrowsAsync(new Exception());

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationFailedMessage())
            .Returns("error message");

            _wegwijsProviderMock
            .Setup(provider => provider.GetOrganisationAsync(_ovoNumber))
            .ReturnsAsync(() => new Optional <Organisation>(
                              new Organisation
            {
                Name       = new OrganisationName("Departement van verloren straten"),
                OvoNumber  = _ovoNumber,
                Provenance = OrganisationProvenance.FromWegwijsSearch("uri//12")
            }));

            _sut = new OrganisationProvider(
                Mock.Of <ILogger <OrganisationProvider> >(),
                _dataVlaanderenProviderMock.Object,
                _wegwijsProviderMock.Object);
        }
        private void SetupContext()
        {
            _ovoNumber = new OvoNumber("OVO000015");
            _datavlaanderenOrganisationName = new OrganisationName("Departement van verloren gebouwen");
            _provenanceUri = "uri//11";

            var dataVlaanderenProviderMock = new Mock <IDataVlaanderenProvider>();

            _wegwijsProviderMock = new Mock <IWegwijsProvider>();

            dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationAsync(_ovoNumber))
            .ReturnsAsync(() => new Optional <Organisation>(
                              new Organisation
            {
                Name       = _datavlaanderenOrganisationName,
                OvoNumber  = _ovoNumber,
                Provenance = OrganisationProvenance.FromDataVlaanderen(_provenanceUri)
            }));

            _sut = new OrganisationProvider(
                Mock.Of <ILogger <OrganisationProvider> >(),
                dataVlaanderenProviderMock.Object,
                _wegwijsProviderMock.Object);
        }
Ejemplo n.º 4
0
        public async Task <Organisation> GetOrganisationAsync(OvoNumber ovoNumber)
        {
            var orderedProviderSources = new IOrganisationProviderSource[]
            {
                _dataVlaanderenProvider,
                _wegwijsProvider
            };

            var attemptResults = new List <string>();

            foreach (var provider in orderedProviderSources)
            {
                try
                {
                    var organisation = await provider.GetOrganisationAsync(ovoNumber);

                    if (organisation.HasValue)
                    {
                        return(organisation.Value);
                    }

                    attemptResults.Add(provider.GetOrganisationNotFoundMessage());
                }
                catch (Exception exception)
                {
                    var message = provider.GetOrganisationFailedMessage();
                    _logger.LogError(exception, message);
                    attemptResults.Add(message);
                }
            }

            throw new GetOrganisationFailed(attemptResults);
        }
        private void SetupContext()
        {
            var ovoNumber = new OvoNumber("OVO000015");

            _dataVlaanderenProviderMock = new Mock <IDataVlaanderenProvider>();
            _wegwijsProviderMock        = new Mock <IWegwijsProvider>();

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationAsync(ovoNumber))
            .ReturnsAsync(() => Optional <Organisation> .Empty);

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationNotFoundMessage())
            .Returns("data.vlaanderen: not found");

            _wegwijsProviderMock
            .Setup(provider => provider.GetOrganisationAsync(ovoNumber))
            .ThrowsAsync(new Exception());

            _wegwijsProviderMock
            .Setup(provider => provider.GetOrganisationFailedMessage())
            .Returns("wegwijs: failed");

            var sut = new OrganisationProvider(
                Mock.Of <ILogger <OrganisationProvider> >(),
                _dataVlaanderenProviderMock.Object,
                _wegwijsProviderMock.Object);

            _act = () => sut.GetOrganisationAsync(ovoNumber).GetAwaiter().GetResult();
        }
        public static Organisation Register(OvoNumber ovoNumber)
        {
            var organisation = Factory();

            organisation.ApplyChange(new OrganisationWasRegistered(ovoNumber));
            return(organisation);
        }
Ejemplo n.º 7
0
        public void WithEveryPropertyChanged(
            OvoNumber ovoNumber,
            Organisation organisation,
            PublicServiceId publicServiceId,
            PublicServiceName publicServiceName,
            PrivateZoneId privateZoneId)
        {
            _mocker.MockOrganisationProvider(ovoNumber, organisation);

            var newPublicServiceName = new PublicServiceName("Uitreiken identiteitskaart");

            Assert(
                new Scenario()
                .Given(publicServiceId,
                       new PublicServiceWasRegistered(publicServiceId, publicServiceName, privateZoneId))
                .When(new UpdatePublicService(publicServiceId, newPublicServiceName, ovoNumber, true))
                .Then(publicServiceId,
                      new PublicServiceWasRenamed(publicServiceId, newPublicServiceName),
                      new CompetentAuthorityWasAssigned(
                          publicServiceId,
                          organisation.OvoNumber,
                          organisation.Name,
                          organisation.Provenance),
                      new OrafinExportPropertyWasSet(
                          publicServiceId,
                          true)));
        }
Ejemplo n.º 8
0
        public void CannotPerformSimpleUpdateOnRemovedPublicService(
            PublicServiceId publicServiceId,
            PublicServiceName publicServiceName,
            PublicServiceName publicServiceRename,
            ReasonForRemoval reasonForRemoval,
            OvoNumber ovoNumber,
            Organisation organisation)
        {
            _mocker.MockOrganisationProvider(ovoNumber, organisation);

            Assert(new Scenario()
                   .Given(publicServiceId,
                          new PublicServiceWasRegistered(publicServiceId, publicServiceName, PrivateZoneId.Unregistered),
                          new PublicServiceWasRemoved(publicServiceId, reasonForRemoval))
                   .When(new UpdatePublicService(publicServiceId, publicServiceRename, null, false))
                   .Throws(new CannotPerformActionOnRemovedPublicService()));

            Assert(new Scenario()
                   .Given(publicServiceId,
                          new PublicServiceWasRegistered(publicServiceId, publicServiceName, PrivateZoneId.Unregistered),
                          new PublicServiceWasRemoved(publicServiceId, reasonForRemoval))
                   .When(new UpdatePublicService(publicServiceId, publicServiceName, ovoNumber, false))
                   .Throws(new CannotPerformActionOnRemovedPublicService()));

            Assert(new Scenario()
                   .Given(publicServiceId,
                          new PublicServiceWasRegistered(publicServiceId, publicServiceName, PrivateZoneId.Unregistered),
                          new PublicServiceWasRemoved(publicServiceId, reasonForRemoval))
                   .When(new UpdatePublicService(publicServiceId, publicServiceName, null, true))
                   .Throws(new CannotPerformActionOnRemovedPublicService()));
        }
Ejemplo n.º 9
0
 public UpdatePublicService(
     PublicServiceId publicServiceId,
     PublicServiceName publicServiceName,
     OvoNumber ovoNumber,
     bool isSubsidy)
 {
     PublicServiceId   = publicServiceId;
     PublicServiceName = publicServiceName;
     OvoNumber         = ovoNumber;
     IsSubsidy         = isSubsidy;
 }
        public void MockOrganisationProviderFailure(OvoNumber ovoNumber, Exception exception)
        {
            _source.ModifyContainer(builder =>
            {
                var organisationProviderMock = new Mock <IOrganisationProvider>();
                organisationProviderMock
                .Setup(provider => provider.GetOrganisationAsync(ovoNumber))
                .Throws(exception);

                builder
                .RegisterInstance(organisationProviderMock.Object)
                .As <IOrganisationProvider>();
            });
        }
Ejemplo n.º 11
0
 public CompetentAuthorityWasAssigned(
     PublicServiceId publicServiceId,
     OvoNumber competentAuthorityCode,
     OrganisationName competentAuthorityName,
     PublicServiceRegistry.PublicService.OrganisationProvenance competentAuthorityProvenance)
 {
     PublicServiceId              = publicServiceId;
     CompetentAuthorityCode       = competentAuthorityCode;
     CompetentAuthorityName       = competentAuthorityName;
     CompetentAuthorityProvenance =
         new OrganisationProvenance(
             competentAuthorityProvenance.Source,
             competentAuthorityProvenance.Uri);
 }
Ejemplo n.º 12
0
        public void WithNonExistingOvoNumber(
            OvoNumber ovoNumber,
            PublicServiceId publicServiceId,
            PublicServiceName publicServiceName,
            PrivateZoneId privateZoneId)
        {
            _mocker.MockOrganisationProviderFailure(ovoNumber, new GetOrganisationFailed());

            Assert(
                new Scenario()
                .Given(publicServiceId,
                       new PublicServiceWasRegistered(publicServiceId, publicServiceName, privateZoneId))
                .When(new UpdatePublicService(publicServiceId, publicServiceName, ovoNumber, true))
                .Throws(new GetOrganisationFailed()));     // TODO: this only checks on type. Let's make the Throws method generic?
        }
Ejemplo n.º 13
0
        public void WithOvoNumber(
            OvoNumber ovoNumber,
            Organisation organisation,
            PublicServiceId publicServiceId,
            PublicServiceName publicServiceName,
            PrivateZoneId privateZoneId)
        {
            _mocker.MockOrganisationProvider(ovoNumber, organisation);

            Assert(
                new Scenario()
                .Given(publicServiceId,
                       new PublicServiceWasRegistered(publicServiceId, publicServiceName, privateZoneId))
                .When(new UpdatePublicService(publicServiceId, publicServiceName, ovoNumber, false))
                .Then(publicServiceId,
                      new CompetentAuthorityWasAssigned(
                          publicServiceId,
                          organisation.OvoNumber,
                          organisation.Name,
                          organisation.Provenance)));
        }
Ejemplo n.º 14
0
        public async Task <Optional <Organisation> > GetOrganisationAsync(OvoNumber ovoNumber)
        {
            var responseMessage = await _wegwijsVlaanderenClient.GetAsync("organisations?q=ovoNumber:" + ovoNumber);

            var responseText = await responseMessage.Content.ReadAsStringAsync();

            var searchResult = JsonConvert.DeserializeObject <WegwijsOrganisation[]>(responseText);

            if (searchResult.Length != 1)
            {
                return(Optional <Organisation> .Empty);
            }

            var organisation = searchResult.Single();

            return(new Optional <Organisation>(
                       new Organisation
            {
                Name = new OrganisationName(organisation.Name),
                OvoNumber = ovoNumber,
                Provenance = OrganisationProvenance.FromWegwijsSearch(responseMessage.RequestMessage.RequestUri.ToString())
            }));
        }
        public async Task <Optional <Organisation> > GetOrganisationAsync(OvoNumber ovoNumber)
        {
            var httpResponseMessage = await _dataVlaanderenClient.GetAsync(ovoNumber);

            var responseContent = await httpResponseMessage.Content.ReadAsStringAsync();

            var dataVlaanderenOrganisation = DataVlaanderenOrganisation.FromJson(
                DataVlaanderenBaseUri + ovoNumber,
                responseContent);

            if (dataVlaanderenOrganisation.HasValue)
            {
                return(new Optional <Organisation>(
                           new Organisation
                {
                    Name = new OrganisationName(dataVlaanderenOrganisation.Value.PrefLabel),
                    OvoNumber = ovoNumber,
                    Provenance = OrganisationProvenance.FromDataVlaanderen(httpResponseMessage.RequestMessage.RequestUri.ToString())
                }));
            }

            return(Optional <Organisation> .Empty);
        }
 public OrganisationWasRegistered(
     OvoNumber ovoNumber)
 {
     OvoNumber = ovoNumber;
 }
 private void When(OrganisationWasRegistered @event)
 {
     _ovoNumber = new OvoNumber(@event.OvoNumber);
 }
 private void When(CompetentAuthorityWasAssigned @event)
 {
     _competentAuthorityOvoNumber = new OvoNumber(@event.CompetentAuthorityCode);
 }
Ejemplo n.º 19
0
 public RegisterOrganisation(OvoNumber ovoNumber) => OvoNumber = ovoNumber;