public void GetConfigForVersion_ShouldReturnNotFound_WhenNoConfigurationExists() { // arrange var configKey = _fixture.Create <string>(); var configVersion = _fixture.Create <Version>(); var envTag = _fixture.Create <string>(); A.CallTo(() => _configurationStoreService.GetConfigurationValue( configKey, configVersion, envTag)) .Returns(Task.FromResult <ConfigurationValue>(null)); // act var response = _browser.Get( $"/api/keys/{configKey}/version/{configVersion}/{envTag}", with => { with.HttpRequest(); with.Accept(new MediaRange("application/json")); }); // assert response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
private async Task <dynamic> GetConfigForVersion(dynamic parameters, CancellationToken token) { string key = parameters.configKey; Version version = parameters.configVersion; string environmentTag = parameters.envTag; int?currentSequence = Request.Query.seq; var configurationValue = await _configStoreService .GetConfigurationValue(key, version, environmentTag) .ConfigureAwait(false); var negociator = Negotiate .WithStatusCode(HttpStatusCode.OK); if (configurationValue == null) { negociator = Negotiate .WithStatusCode(HttpStatusCode.NotFound); } else { if (currentSequence.HasValue && configurationValue.Sequence == currentSequence.Value) { // no need to return, nothing changed negociator = Negotiate .WithStatusCode(HttpStatusCode.NotModified); } else { var mappedConfigValue = Mapper.Map <ConfigurationValue, ConfigValueListItem>(configurationValue); negociator = negociator .WithModel(mappedConfigValue); } } return(negociator .WithAllowedMediaRange(JsonMediaRange)); }