public void ShouldProvideHttpStatusCodeUponRecievingResponse() { var httpResponseMessage = new HttpResponseMessage { StatusCode = HttpStatusCode.OK }; dynamic resource = new RestfulieProxy(It.IsAny<IHttpClient>(), It.IsAny<IDynamicContentParserFactory>(), It.IsAny<IHttpMethodDiscoverer>()) { LatestHttpResponseMessage = httpResponseMessage }; Assert.AreEqual("200", resource.StatusCode); }
public void ShouldDelegateToInternalDynamicObjectOnTryGetMemberReturningFalse() { var dynamicContentParserStub = new DynamicObjectStub { TryGetMemberDelegate = (GetMemberBinder getMemberBinder, out object result) => { result = null; return false; } }; dynamic resource = new RestfulieProxy(It.IsAny<IHttpClient>(), It.IsAny<IDynamicContentParserFactory>(), It.IsAny<IHttpMethodDiscoverer>()) { DynamicContentParser = dynamicContentParserStub }; SharpShooting.Tests.TestHelpers.TryGetAndThrow(resource.AnyMember); }
public void ShouldDelegateToInternalDynamicObjectOnTryGetMemberReturningTrue() { var dynamicContentParserStub = new DynamicObjectStub { TryGetMemberDelegate = (GetMemberBinder getMemberBinder, out object result) => { result = null; return true; } }; dynamic resource = new RestfulieProxy(It.IsAny<IHttpClient>(), It.IsAny<IDynamicContentParserFactory>(), It.IsAny<IHttpMethodDiscoverer>()) { DynamicContentParser = dynamicContentParserStub }; Assert.IsNull(resource.AnyMember); }
public void ShouldDoAGetHttpRequestToAtomLinkOnResourceAndShouldSetLatestHttpResponseMessage() { const string orderXml = "<?xml version='1.0' encoding='UTF-8'?>\r\n<order><id>1</id><atom:link rel='refresh' href='http://localhost/orders/1' xmlns:atom='http://www.w3.org/2005/Atom'/></order>"; _httpClientMock.SetupHttpClientMock(new HttpResponseMessage()); _httpMethodDiscoveryMock.Setup(it => it.MethodFor(It.IsAny<string>())).Returns(HttpMethod.GET); dynamic order = new RestfulieProxy(_httpClientMock.Object, _dynamicContentParserFactoryMock.Object, _httpMethodDiscoveryMock.Object) { DynamicContentParser = new DynamicXmlContentParser(orderXml), }; order.refresh(); _httpClientMock.Verify(it => it.Send(HttpMethod.GET, new Uri("http://localhost/orders/1"), It.IsAny<RequestHeaders>(), It.IsAny<HttpContent>()), Times.Once()); }
public void ShouldDoMakeHttpRequestWithHttpMethodDiscovery() { SetupHttpClientMock(new HttpResponseMessage()); dynamic resource = new RestfulieProxy(_httpClientMock.Object, _dynamicContentParserFactoryMock.Object, _httpMethodDiscoveryMock.Object) { DynamicContentParser = new DynamicObjectStub() }; resource.AnyMethod(); _httpMethodDiscoveryMock.Verify(it => it.MethodFor(It.IsAny<string>())); }
public void ShouldSetLatestHttpResponseMessageWhenFollowingAtomLink() { const string orderXml = "<?xml version='1.0' encoding='UTF-8'?>\r\n<order><id>1</id><atom:link rel='refresh' href='http://localhost/orders/1' xmlns:atom='http://www.w3.org/2005/Atom'/></order>"; var firstHttpResponseMesage = new HttpResponseMessage(); var secondHttpResponseMesage = new HttpResponseMessage(); SetupHttpClientMock(secondHttpResponseMesage); dynamic order = new RestfulieProxy(_httpClientMock.Object, _dynamicContentParserFactoryMock.Object, _httpMethodDiscoveryMock.Object) { DynamicContentParser = new DynamicXmlContentParser(orderXml), LatestHttpResponseMessage = firstHttpResponseMesage }; dynamic orderAfterRefresh = order.refresh(); Assert.AreSame((order as RestfulieProxy).LatestHttpResponseMessage, firstHttpResponseMesage); Assert.AreSame((orderAfterRefresh as RestfulieProxy).LatestHttpResponseMessage, secondHttpResponseMesage); }