diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/FieldsRetrieverTests.cs b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/FieldsRetrieverTests.cs index 3139f8a..0d67913 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/FieldsRetrieverTests.cs +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/FieldsRetrieverTests.cs @@ -1,38 +1,59 @@ using System; -using System.Collections.Specialized; using Rhino.Mocks; -using ServiceStack.ServiceHost; +using ServiceStack.Web; using Xunit; namespace ServiceStack.PartialResponse.ServiceModel.UnitTests { public class FieldsRetrieverTests { - private IRequestContext GenerateRequestMockWithQueryString( - string fieldsQueryStringName, params string[] fieldValues) + private void StubHeaders(IRequest request, string field, params string[] values) { - var reqContextMock = MockRepository.GenerateStub(); - var mockHttpRequest = MockRepository.GenerateStub(); - var nameValueCollection = MockRepository.GenerateStub(); - string queryValue = string.Join(",", fieldValues); - nameValueCollection.Expect(x => x.Get(fieldsQueryStringName)).Return(queryValue); - mockHttpRequest.Expect(x => x.QueryString).Return(nameValueCollection); - reqContextMock.Expect(x => x.Get()).Return(mockHttpRequest); - - return reqContextMock; + StubHeaders(request, new Tuple(field, values)); + } + + private void StubHeaders(IRequest request, params Tuple[] headers) + { + var nameValueCollection = MockRepository.GenerateStub(); + if (headers != null) + { + foreach (var header in headers) + { + string headerValue = string.Join(FieldSelectorConstants.MultipleFieldSeparator.ToString(), header.Item2); + nameValueCollection.Expect(x => x.Get(header.Item1)).Return(headerValue); + } + } + request.Expect(x => x.Headers).Return(nameValueCollection); + } + + private void StubQueryString(IRequest request, string field, params string[] values) + { + StubQueryString(request, new Tuple(field, values)); + } + + private void StubQueryString(IRequest request, params Tuple[] queryString) + { + var nameValueCollection = MockRepository.GenerateStub(); + if (queryString != null) + { + foreach (var queryParam in queryString) + { + string queryValue = string.Join(FieldSelectorConstants.MultipleFieldSeparator.ToString(), queryParam.Item2); + nameValueCollection.Expect(x => x.Get(queryParam.Item1)).Return(queryValue); + } + } + request.Expect(x => x.QueryString).Return(nameValueCollection); } [Fact] public void FieldsFromQueryString_NoFields_ReturnsEmptyString() { - var mockRequestContext = MockRepository.GenerateStub(); - var mockHttpRequest = MockRepository.GenerateStub(); - mockRequestContext.Expect(x => x.Get()).Return(mockHttpRequest); + var request = MockRepository.GenerateStub(); Assert.Equal( string.Empty, FieldsRetriever.FieldsFromQueryString( - mockRequestContext, new DefaultPartialResponseConfig().FieldsQueryStringName)); + request, new DefaultPartialResponseConfig().FieldsQueryStringName)); } [Fact] @@ -40,12 +61,12 @@ public void FieldsFromQueryString_OneField_OneFieldReturned() { var partialReponseConfig = new DefaultPartialResponseConfig(); const string IdField = "id"; - IRequestContext reqContextMock = - GenerateRequestMockWithQueryString(partialReponseConfig.FieldsQueryStringName, IdField); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); Assert.Equal( IdField, - FieldsRetriever.FieldsFromQueryString(reqContextMock, partialReponseConfig.FieldsQueryStringName)); + FieldsRetriever.FieldsFromQueryString(request, partialReponseConfig.FieldsQueryStringName)); } [Fact] @@ -54,35 +75,37 @@ public void FieldsFromQueryString_TwoFields_TwoFieldReturned() var partialReponseConfig = new DefaultPartialResponseConfig(); const string IdField = "id"; const string NameField = "name"; - IRequestContext reqContextMock = GenerateRequestMockWithQueryString( - partialReponseConfig.FieldsQueryStringName, IdField, NameField); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField, NameField); Assert.Equal( - string.Join(",", IdField, NameField), - FieldsRetriever.FieldsFromQueryString(reqContextMock, partialReponseConfig.FieldsQueryStringName)); + string.Join(FieldSelectorConstants.MultipleFieldSeparator.ToString(), IdField, NameField), + FieldsRetriever.FieldsFromQueryString(request, partialReponseConfig.FieldsQueryStringName)); } [Fact] public void FieldsFromQueryString_EmptyFields_ReturnsEmptyString() { var partialReponseConfig = new DefaultPartialResponseConfig(); - IRequestContext reqContextMock = GenerateRequestMockWithQueryString( - partialReponseConfig.FieldsQueryStringName, string.Empty); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, string.Empty); Assert.Equal( string.Empty, - FieldsRetriever.FieldsFromQueryString(reqContextMock, partialReponseConfig.FieldsQueryStringName)); + FieldsRetriever.FieldsFromQueryString(request, partialReponseConfig.FieldsQueryStringName)); } [Fact] public void FieldsFromHeader_NoFields_ReturnsEmptyString() { - var reqContextMock = MockRepository.GenerateStub(); + var request = MockRepository.GenerateStub(); + StubHeaders(request); + Assert.Equal( string.Empty, FieldsRetriever.FieldsFromHeader( - reqContextMock, new DefaultPartialResponseConfig().FieldsHeaderName)); + request, new DefaultPartialResponseConfig().FieldsHeaderName)); } [Fact] @@ -90,11 +113,11 @@ public void FieldsFromHeader_OneField_OneFieldReturned() { var partialReponseConfig = new DefaultPartialResponseConfig(); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(IdField); + var request = MockRepository.GenerateStub(); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, IdField); Assert.Equal( - IdField, FieldsRetriever.FieldsFromHeader(reqContextMock, partialReponseConfig.FieldsHeaderName)); + IdField, FieldsRetriever.FieldsFromHeader(request, partialReponseConfig.FieldsHeaderName)); } [Fact] @@ -103,31 +126,30 @@ public void FieldsFromHeader_TwoFields_TwoFieldReturned() var partialReponseConfig = new DefaultPartialResponseConfig(); const string IdField = "id"; const string NameField = "name"; - string joinedHeaderValues = string.Join(",", IdField, NameField); - var reqContextMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(joinedHeaderValues); + var request = MockRepository.GenerateStub(); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, IdField, NameField); Assert.Equal( - joinedHeaderValues, - FieldsRetriever.FieldsFromHeader(reqContextMock, partialReponseConfig.FieldsHeaderName)); + string.Join(FieldSelectorConstants.MultipleFieldSeparator.ToString(), IdField, NameField), + FieldsRetriever.FieldsFromHeader(request, partialReponseConfig.FieldsHeaderName)); } [Fact] public void FieldsFromHeader_EmptyFields_ReturnsEmptyString() { var partialReponseConfig = new DefaultPartialResponseConfig(); - var reqContextMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(string.Empty); + var request = MockRepository.GenerateStub(); + request.Expect(x => x.Headers.Get(partialReponseConfig.FieldsHeaderName)).Return(string.Empty); Assert.Equal( - string.Empty, FieldsRetriever.FieldsFromHeader(reqContextMock, partialReponseConfig.FieldsHeaderName)); + string.Empty, FieldsRetriever.FieldsFromHeader(request, partialReponseConfig.FieldsHeaderName)); } [Fact] public void GetFields_NoFields_ReturnsEmptyString() { - var reqContextMock = MockRepository.GenerateStub(); - Assert.Equal(string.Empty, FieldsRetriever.GetFields(reqContextMock, new DefaultPartialResponseConfig())); + var request = MockRepository.GenerateStub(); + Assert.Equal(string.Empty, FieldsRetriever.GetFields(request, new DefaultPartialResponseConfig())); } [Fact] @@ -137,15 +159,12 @@ public void GetFields_HeaderThenQueryStringOnlyQueryStringSet_ReturnsOneField() GetMockResponseConfig(FieldResolutionMethod.HeaderThenQueryString); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); Assert.Equal( IdField, - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -156,16 +175,13 @@ public void GetFields_HeaderThenQueryStringBothSetDifferent_ReturnsHeaderFieldOn const string IdField = "id"; const string NameField = "name"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(NameField); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, NameField); Assert.Equal( NameField, - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -175,14 +191,12 @@ public void GetFields_QueryStringThenHeaderOnlyHeaderSet_ReturnsOneField() GetMockResponseConfig(FieldResolutionMethod.QueryStringThenHeader); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(IdField); + var request = MockRepository.GenerateStub(); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, IdField); Assert.Equal( IdField, - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -194,16 +208,13 @@ public void GetFields_QueryStringThenHeaderBothSetDifferent_ReturnsQueryStringFi const string IdField = "id"; const string NameField = "name"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(NameField); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, NameField); Assert.Equal( IdField, - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -212,15 +223,12 @@ public void GetFields_QueryStringOnlyOneFieldSet_RetrunsOneField() IPartialResponseConfig partialReponseConfig = GetMockResponseConfig(FieldResolutionMethod.QueryStringOnly); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); - + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); + Assert.Equal( IdField, - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -229,12 +237,12 @@ public void GetFields_HeaderOnlyOneFieldSet_RetrunsOneField() IPartialResponseConfig partialReponseConfig = GetMockResponseConfig(FieldResolutionMethod.HeaderOnly); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(IdField); + var request = MockRepository.GenerateStub(); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, IdField); Assert.Equal( IdField, - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -243,12 +251,10 @@ public void GetFields_QueryStringOnlyHeaderSet_RetrunsEmptyString() IPartialResponseConfig partialReponseConfig = GetMockResponseConfig(FieldResolutionMethod.QueryStringOnly); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(IdField); - - Assert.Equal(string.Empty, FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + var request = MockRepository.GenerateStub(); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, IdField); + + Assert.Equal(string.Empty, FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -257,13 +263,10 @@ public void GetFields_HeaderOnlyQueryStringSet_ReturnsEmptyString() IPartialResponseConfig partialReponseConfig = GetMockResponseConfig(FieldResolutionMethod.HeaderOnly); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); - Assert.Equal(string.Empty, FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + Assert.Equal(string.Empty, FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -272,9 +275,9 @@ public void GetFields_UnknownEnum_ReturnsEmptyString() Assert.False(Enum.IsDefined(typeof (FieldResolutionMethod), Int32.MaxValue)); IPartialResponseConfig partialReponseConfig = GetMockResponseConfig((FieldResolutionMethod) Int32.MaxValue); - var reqContextMock = MockRepository.GenerateStub(); + var request = MockRepository.GenerateStub(); - Assert.Equal(string.Empty, FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + Assert.Equal(string.Empty, FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -286,16 +289,13 @@ public void GetFields_QueryStringAndHeaderBothSet_ReturnsAllFields() const string IdField = "id"; const string NameField = "name"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); - reqContextMock.Expect(x => x.GetHeader(partialReponseConfig.FieldsHeaderName)).Return(NameField); + var request = MockRepository.GenerateStub(); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); + StubHeaders(request, partialReponseConfig.FieldsHeaderName, NameField); Assert.Equal( string.Join(FieldSelectorConstants.MultipleFieldSeparator.ToString(), NameField, IdField), - FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + FieldsRetriever.GetFields(request, partialReponseConfig)); } [Fact] @@ -305,13 +305,11 @@ public void GetFields_QueryStringAndHeaderOnlyQueryStringSet_ReturnsQueryStringF GetMockResponseConfig(FieldResolutionMethod.QueryStringAndHeader); const string IdField = "id"; - var reqContextMock = MockRepository.GenerateStub(); - var httpRequesttMock = MockRepository.GenerateStub(); - reqContextMock.Expect(x => x.Get()).Return(httpRequesttMock); - httpRequesttMock.Expect(x => x.QueryString) - .Return(new NameValueCollection {{partialReponseConfig.FieldsQueryStringName, IdField}}); + var request = MockRepository.GenerateStub(); + StubHeaders(request); + StubQueryString(request, partialReponseConfig.FieldsQueryStringName, IdField); - Assert.Equal(IdField, FieldsRetriever.GetFields(reqContextMock, partialReponseConfig)); + Assert.Equal(IdField, FieldsRetriever.GetFields(request, partialReponseConfig)); } private IPartialResponseConfig GetMockResponseConfig(FieldResolutionMethod resolutionMethod) diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/PartialResponseExtensionsTests.cs b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/PartialResponseExtensionsTests.cs index 2b47db7..7c21ee6 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/PartialResponseExtensionsTests.cs +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/PartialResponseExtensionsTests.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using Rhino.Mocks; -using ServiceStack.ServiceHost; +using ServiceStack.Web; using Xunit; namespace ServiceStack.PartialResponse.ServiceModel.UnitTests @@ -10,10 +10,10 @@ public class PartialResponseExtensionsTests [Fact] public void ToPartialResponse_NoPartialFieldsSet_ReturnsSameObject() { - var reqContextMock = MockRepository.GenerateMock(); + var request = MockRepository.GenerateMock(); const decimal ExpectedSalary = 1234.56m; var fakeDto = new FakeDto {Salary = ExpectedSalary}; - object partialResponse = reqContextMock.ToPartialResponse(fakeDto); + object partialResponse = request.ToPartialResponse(fakeDto); Assert.Same(fakeDto, partialResponse); Assert.Equal(ExpectedSalary, ((FakeDto) partialResponse).Salary); @@ -23,9 +23,9 @@ public void ToPartialResponse_NoPartialFieldsSet_ReturnsSameObject() public void ToPartialResponse_NullDto_ReturnsNull() { FakeDto fakeDto = null; - var reqContextMock = MockRepository.GenerateMock(); + var request = MockRepository.GenerateMock(); - Assert.Null(reqContextMock.ToPartialResponse(fakeDto)); + Assert.Null(request.ToPartialResponse(fakeDto)); } [Fact] @@ -34,10 +34,10 @@ public void ToPartialResponse_UnsupportedType_ReturnsSameObject() const decimal ExpectedSalary = 1234.56m; var fakeDto = new FakeDto {Salary = ExpectedSalary}; var config = new DefaultPartialResponseConfig(); - var reqContextMock = MockRepository.GenerateMock(); - reqContextMock.Expect(x => x.ResponseContentType).Return(config.SupportedResponseContentType[0] + "garbage"); - reqContextMock.Expect(x => x.GetHeader(config.FieldsHeaderName)).Return("id"); - object partialResponse = reqContextMock.ToPartialResponse(fakeDto, config); + var request = MockRepository.GenerateMock(); + request.Expect(x => x.ResponseContentType).Return(config.SupportedResponseContentType[0] + "garbage"); + request.Expect(x => x.Headers.Get(config.FieldsHeaderName)).Return("id"); + object partialResponse = request.ToPartialResponse(fakeDto, config); Assert.Same(fakeDto, partialResponse); Assert.Equal(ExpectedSalary, ((FakeDto) partialResponse).Salary); @@ -49,10 +49,10 @@ public void ToPartialResponse_FieldsSetAndSupportedType_ReturnspartialResponse() const decimal ExpectedSalary = 1234.56m; var fakeDto = new FakeDto {Salary = ExpectedSalary, Person = new FakePerson()}; var config = new DefaultPartialResponseConfig(); - var reqContextMock = MockRepository.GenerateMock(); - reqContextMock.Expect(x => x.ResponseContentType).Return(config.SupportedResponseContentType[0]); - reqContextMock.Expect(x => x.GetHeader(config.FieldsHeaderName)).Return("salary"); - dynamic partialResponse = reqContextMock.ToPartialResponse(fakeDto, config); + var request = MockRepository.GenerateMock(); + request.Expect(x => x.ResponseContentType).Return(config.SupportedResponseContentType[0]); + request.Expect(x => x.Headers.Get(config.FieldsHeaderName)).Return("salary"); + dynamic partialResponse = request.ToPartialResponse(fakeDto, config); Assert.False(((IDictionary) partialResponse).ContainsKey("Person")); Assert.True(((IDictionary) partialResponse).ContainsKey("Salary")); diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/ServiceStack.PartialResponse.ServiceModel.UnitTests.csproj b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/ServiceStack.PartialResponse.ServiceModel.UnitTests.csproj index 4156678..94cc784 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/ServiceStack.PartialResponse.ServiceModel.UnitTests.csproj +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/ServiceStack.PartialResponse.ServiceModel.UnitTests.csproj @@ -41,9 +41,9 @@ False ..\packages\RhinoMocks.3.6.1\lib\net\Rhino.Mocks.dll - - False - ..\packages\ServiceStack.Common.3.9.48\lib\net35\ServiceStack.Interfaces.dll + + ..\packages\ServiceStack.Interfaces.4.0.44\lib\portable-wp80+sl5+net40+win8+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/packages.config b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/packages.config index e2ce01e..edaa291 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/packages.config +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel.UnitTests/packages.config @@ -1,8 +1,6 @@  - - - - - + + + \ No newline at end of file diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/FieldsRetriever.cs b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/FieldsRetriever.cs index cf66873..3936c7b 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/FieldsRetriever.cs +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/FieldsRetriever.cs @@ -1,36 +1,36 @@ -using ServiceStack.ServiceHost; +using ServiceStack.Web; namespace ServiceStack.PartialResponse.ServiceModel { internal static class FieldsRetriever { - public static string GetFields(IRequestContext requestContext, IPartialResponseConfig partialResponseConfig) + public static string GetFields(IRequest request, IPartialResponseConfig partialResponseConfig) { switch (partialResponseConfig.FieldResolutionMethod) { case FieldResolutionMethod.HeaderOnly: - return FieldsFromHeader(requestContext, partialResponseConfig.FieldsHeaderName); + return FieldsFromHeader(request, partialResponseConfig.FieldsHeaderName); case FieldResolutionMethod.QueryStringOnly: - return FieldsFromQueryString(requestContext, partialResponseConfig.FieldsQueryStringName); + return FieldsFromQueryString(request, partialResponseConfig.FieldsQueryStringName); case FieldResolutionMethod.HeaderThenQueryString: { - string fields = FieldsFromHeader(requestContext, partialResponseConfig.FieldsHeaderName); + string fields = FieldsFromHeader(request, partialResponseConfig.FieldsHeaderName); return string.IsNullOrWhiteSpace(fields) - ? FieldsFromQueryString(requestContext, partialResponseConfig.FieldsQueryStringName) + ? FieldsFromQueryString(request, partialResponseConfig.FieldsQueryStringName) : fields; } case FieldResolutionMethod.QueryStringThenHeader: { - string fields = FieldsFromQueryString(requestContext, partialResponseConfig.FieldsQueryStringName); + string fields = FieldsFromQueryString(request, partialResponseConfig.FieldsQueryStringName); return string.IsNullOrWhiteSpace(fields) - ? FieldsFromHeader(requestContext, partialResponseConfig.FieldsHeaderName) + ? FieldsFromHeader(request, partialResponseConfig.FieldsHeaderName) : fields; } case FieldResolutionMethod.QueryStringAndHeader: { - string headerFields = FieldsFromHeader(requestContext, partialResponseConfig.FieldsHeaderName); + string headerFields = FieldsFromHeader(request, partialResponseConfig.FieldsHeaderName); string queryFields = FieldsFromQueryString( - requestContext, partialResponseConfig.FieldsQueryStringName); + request, partialResponseConfig.FieldsQueryStringName); return string.IsNullOrWhiteSpace(headerFields) ? queryFields : string.Join( @@ -41,25 +41,24 @@ public static string GetFields(IRequestContext requestContext, IPartialResponseC } } - public static string FieldsFromQueryString(IRequestContext requestContext, string fieldsQueryStringName) + public static string FieldsFromQueryString(IRequest request, string fieldsQueryStringName) { - var httpRequest = requestContext.Get(); - - if (httpRequest == null) - { - return string.Empty; - } - if (httpRequest.QueryString == null) + if (request == null || request.QueryString == null) { return string.Empty; } - return httpRequest.QueryString.Get(fieldsQueryStringName); + return request.QueryString.Get(fieldsQueryStringName) ?? string.Empty; } - public static string FieldsFromHeader(IRequestContext requestContext, string fieldsHeaderName) + public static string FieldsFromHeader(IRequest request, string fieldsHeaderName) { - return requestContext.GetHeader(fieldsHeaderName) ?? string.Empty; + if (request == null || request.Headers == null) + { + return string.Empty; + } + + return request.Headers.Get(fieldsHeaderName) ?? string.Empty; } } } \ No newline at end of file diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/PartialResponseExtensions.cs b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/PartialResponseExtensions.cs index 2336eca..2e686bb 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/PartialResponseExtensions.cs +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/PartialResponseExtensions.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using ServiceStack.ServiceHost; +using ServiceStack.Web; namespace ServiceStack.PartialResponse.ServiceModel { @@ -10,7 +10,7 @@ public static class PartialResponseExtensions { /// /// - /// Returns a partial response of the given Dto if fileds are specified in the request context and the content + /// Returns a partial response of the given Dto if fields are specified in the request and the content /// type is supported. /// /// @@ -18,29 +18,29 @@ public static class PartialResponseExtensions /// /// /// Dto Class - /// Servicestack Request Context + /// Servicestack Request /// Dto to process to partial response. /// - public static object ToPartialResponse(this IRequestContext requestContext, T dto) + public static object ToPartialResponse(this IRequest request, T dto) where T : class { - return requestContext.ToPartialResponse(dto, new DefaultPartialResponseConfig()); + return request.ToPartialResponse(dto, new DefaultPartialResponseConfig()); } /// /// - /// Returns a partial response of the given Dto if fileds are specified in the request context and the content + /// Returns a partial response of the given Dto if fields are specified in the request and the content /// type is supported. /// /// Configuration is provided by the caller. /// /// - /// + /// /// /// /// public static object ToPartialResponse( - this IRequestContext requestContext, T dto, IPartialResponseConfig partialResponseConfig) + this IRequest request, T dto, IPartialResponseConfig partialResponseConfig) where T : class { if (dto == null) @@ -48,9 +48,9 @@ public static object ToPartialResponse( return null; } - string fields = FieldsRetriever.GetFields(requestContext, partialResponseConfig); + string fields = FieldsRetriever.GetFields(request, partialResponseConfig); bool isSupportedContentType = - partialResponseConfig.IsSupportedContentType(requestContext.ResponseContentType); + partialResponseConfig.IsSupportedContentType(request.ResponseContentType); object processedResponse = dto; diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/ServiceStack.PartialResponse.ServiceModel.csproj b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/ServiceStack.PartialResponse.ServiceModel.csproj index ed07b30..cbb59f8 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/ServiceStack.PartialResponse.ServiceModel.csproj +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/ServiceStack.PartialResponse.ServiceModel.csproj @@ -36,9 +36,9 @@ ..\packages\ImpromptuInterface.6.0.6\lib\net40\ImpromptuInterface.dll - - False - ..\packages\ServiceStack.Common.3.9.48\lib\net35\ServiceStack.Interfaces.dll + + ..\packages\ServiceStack.Interfaces.4.0.44\lib\portable-wp80+sl5+net40+win8+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll + True @@ -79,4 +79,4 @@ --> - + \ No newline at end of file diff --git a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/packages.config b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/packages.config index f4cfc72..48d7779 100644 --- a/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/packages.config +++ b/src/ServiceModel/ServiceStack.PartialResponse.ServiceModel/packages.config @@ -1,6 +1,7 @@  - - - - + + + + + \ No newline at end of file