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 <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);
        }