public void Test_Retries_Execute_And_Should_Fail() { var expectedCode = -10001; try { var transport = new FakeJsonTransport(); transport.SetReturn(this.Fixture.GetBadLoginJson()); transport.SetReturn(this.Fixture.GetBadLoginJson()); transport.SetReturn(this.Fixture.GetBadLoginJson()); transport.SetReturn(this.Fixture.GetBadLoginJson()); var loginMan = new LoginManager("user", "password", transport); var retry = new RpcRetry(transport, loginMan, 3); var argMaker = new AutoTokenArgMaker("fooarg"); var codeGetter = new FakeCodeGetter(expectedCode); var result = retry.Invoke("method", argMaker, codeGetter); Assert.Fail("Expected ApiException"); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(ApiException)); Assert.AreEqual(((ApiException)ex).AgileStatusCode, expectedCode); } }
public void Test_Retries_Execute_And_Can_Complete_Successfully() { var returnMe = new JsonNumber("0"); var transport = new FakeJsonTransport(); transport.SetReturn(this.Fixture.GetBadLoginJson()); transport.SetReturn(this.Fixture.GetBadLoginJson()); transport.SetReturn(this.Fixture.GetGoodLoginJson()); transport.SetReturn(returnMe); var loginMan = new LoginManager("user", "password", transport); var retry = new RpcRetry(transport, loginMan, 3); var argMaker = new AutoTokenArgMaker("fooarg"); var codeGetter = new NullCodeGetter(); var result = retry.Invoke("method", argMaker, codeGetter); Assert.AreEqual(result, returnMe); }