public void DuringGetRequestExpectedHeadersAreAttached(bool supplyCredentials, bool supplyOAuth) { // arrange var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract() { Name = "David" }.ToJson()); var request = factory.Create(new Uri("http://localhost")); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), supplyCredentials ? new CompanyFileCredentials("user", "pass") : null, supplyOAuth ? new OAuthTokens() : null); // act handler.Get <UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message), null); // assert AssertStandardHeaders(supplyCredentials, supplyOAuth, request); var version = typeof(ApiRequestHandler).Assembly.GetName().Version.ToString(3); var userAgent = request.Headers[HttpRequestHeader.UserAgent]; Assert.IsTrue(userAgent.Contains(string.Format("MYOB-ARL-SDK/{0}", version))); Assert.IsNull(request.Headers[HttpRequestHeader.IfNoneMatch]); }
protected void MakeApiGetRequestAsync <T>(Uri uri, ICompanyFileCredentials credentials, Action <HttpStatusCode, T> onComplete, Action <Uri, Exception> onError) where T : class { WrapApiRequestWithOAuthRenew(response => { var api = new ApiRequestHandler(Configuration, credentials, response); api.Get(WebRequestFactory.Create(uri), onComplete, onError); }, onError); }
public void DuringGetRequest_IfNoneMatchHeaderAttached_IfSupplyETag() { // arrange var eTag = "123456789"; var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract() { Name = "David" }.ToJson()); var request = factory.Create(new Uri("http://localhost")); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), new CompanyFileCredentials("user", "pass")); // act handler.Get<UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message), eTag); // assert Assert.AreEqual(eTag, request.Headers[HttpRequestHeader.IfNoneMatch]); }
public void DuringGetRequest_IfNoneMatchHeaderAttached_IfSupplyETag() { // arrange var eTag = "123456789"; var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract() { Name = "David" }.ToJson()); var request = factory.Create(new Uri("http://localhost")); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), new CompanyFileCredentials("user", "pass")); // act handler.Get <UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message), eTag); // assert Assert.AreEqual(eTag, request.Headers[HttpRequestHeader.IfNoneMatch]); }
public void DuringGetRequestExpectedHeadersAreAttached() { // arrange var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract(){Name = "David"}.ToJson()); var request = factory.Create(new Uri("http://localhost")); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), new CompanyFileCredentials("user", "pass")); // act handler.Get<UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message)); // assert Assert.IsTrue(request.Headers[HttpRequestHeader.Authorization].StartsWith("Bearer")); Assert.IsTrue(request.Headers[HttpRequestHeader.AcceptEncoding].Split(new []{','}).Contains("gzip")); Assert.AreEqual("<<clientid>>", request.Headers["x-myobapi-key"]); Assert.AreEqual("v2", request.Headers["x-myobapi-version"]); Assert.AreEqual(Convert.ToBase64String(Encoding.UTF8.GetBytes("user:pass")), request.Headers["x-myobapi-cftoken"]); }
public void DuringGetRequestExpectedHeadersAreAttached(bool supplyCredentials, bool supplyOAuth) { // arrange var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract(){Name = "David"}.ToJson()); var request = factory.Create(new Uri("http://localhost")); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), supplyCredentials ? new CompanyFileCredentials("user", "pass") : null, supplyOAuth ? new OAuthTokens() : null); // act handler.Get<UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message), null); // assert AssertStandardHeaders(supplyCredentials, supplyOAuth, request); var version = typeof (ApiRequestHandler).Assembly.GetName().Version.ToString(3); var userAgent = request.Headers[HttpRequestHeader.UserAgent]; Assert.IsTrue(userAgent.Contains(string.Format("MYOB-ARL-SDK/{0}", version))); Assert.IsNull(request.Headers[HttpRequestHeader.IfNoneMatch]); }
public void AuthorizationHeaderNotAppliedWhenClientCertificateAttached() { // arrange var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract() { Name = "David" }.ToJson()); var request = factory.Create(new Uri("http://localhost")); (request as HttpWebRequest).ClientCertificates.Add(new X509Certificate()); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), new CompanyFileCredentials("user", "pass")); // act handler.Get <UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message), null); // assert Assert.IsNull(request.Headers[HttpRequestHeader.Authorization]); }
public void DuringGetRequestExpectedHeadersAreAttached() { // arrange var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract() { Name = "David" }.ToJson()); var request = factory.Create(new Uri("http://localhost")); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), new CompanyFileCredentials("user", "pass")); // act handler.Get <UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message)); // assert Assert.IsTrue(request.Headers[HttpRequestHeader.Authorization].StartsWith("Bearer")); Assert.IsTrue(request.Headers[HttpRequestHeader.AcceptEncoding].Split(new [] { ',' }).Contains("gzip")); Assert.AreEqual("<<clientid>>", request.Headers["x-myobapi-key"]); Assert.AreEqual("v2", request.Headers["x-myobapi-version"]); Assert.AreEqual(Convert.ToBase64String(Encoding.UTF8.GetBytes("user:pass")), request.Headers["x-myobapi-cftoken"]); }
public void AuthorizationHeaderNotAppliedWhenClientCertificateAttached() { // arrange var factory = new TestWebRequestFactory(); factory.RegisterResultForUri("http://localhost", new UserContract() { Name = "David" }.ToJson()); var request = factory.Create(new Uri("http://localhost")); (request as HttpWebRequest).ClientCertificates.Add(new X509Certificate()); var handler = new ApiRequestHandler(new ApiConfiguration("<<clientid>>", "<<clientsecret>>", "<<redirecturl>>"), new CompanyFileCredentials("user", "pass")); // act handler.Get<UserContract>(request, (code, response) => { }, (uri, exception) => Assert.Fail(exception.Message), null); // assert Assert.IsNull(request.Headers[HttpRequestHeader.Authorization]); }