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))); }
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); }
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); }
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))); }
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())); }
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>(); }); }
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); }
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? }
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))); }
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); }
public RegisterOrganisation(OvoNumber ovoNumber) => OvoNumber = ovoNumber;