Exemple #1
0
        public async Task GetRedirectUsersApi_InvokedOnFirstCallFromCassetteOnSecondCall_Success()
        {
            using var _ = TestServerHelper.BuildAndStartHost();

            var httpClientHandler = new SocketsHttpHandler();
            var innerHandler      = new StubHttpRequestHandler(httpClientHandler);
            var cassette          = new Cassette();
            var tryReplayHandler  = new TryReplayHttpMessageHandler(cassette, innerHandler);

            using var httpClient = new HttpClient(tryReplayHandler)
                  {
                      BaseAddress = _baseAddress
                  };
            var response = await httpClient.GetAsync("/api/get_users/2");

            Assert.That(innerHandler.Invoked, Is.True);
            Assert.That(cassette.Records, Has.Count.EqualTo(1));
            Assert.That(response.RequestMessage.RequestUri, Is.EqualTo(new Uri(_baseAddress, "/api/users/2")));

            innerHandler.Invoked = false;

            response = await httpClient.GetAsync("/api/get_users/2");

            Assert.That(innerHandler.Invoked, Is.False);
            Assert.That(response.RequestMessage?.RequestUri, Is.EqualTo(new Uri(_baseAddress, "/api/users/2")));

            var actual   = JObject.Parse(await response.Content.ReadAsStringAsync());
            var expected = JObject.Parse("{\"id\": 2, \"name\": \"User 2\"}");

            Assert.That(actual, Is.EqualTo(expected));
        }
Exemple #2
0
        public async Task GetUsersApi_InvokedOnFirstCallFromCassetteOnSecondCall_Success()
        {
            using var _ = TestServerHelper.BuildAndStartHost();

            var httpClientHandler = new SocketsHttpHandler();
            var innerHandler      = new StubHttpRequestHandler(httpClientHandler);
            var cassette          = new Cassette();
            var tryReplayHandler  = new TryReplayHttpMessageHandler(cassette, innerHandler);

            using var httpClient = new HttpClient(tryReplayHandler)
                  {
                      BaseAddress = _baseAddress
                  };
            await httpClient.GetStringAsync("/api/users/1");

            Assert.That(innerHandler.Invoked, Is.True);
            Assert.That(cassette.Records, Has.Count.EqualTo(1));

            innerHandler.Invoked = false;

            var result = await httpClient.GetStringAsync("/api/users/1");

            Assert.That(innerHandler.Invoked, Is.False);

            var actual   = JObject.Parse(result);
            var expected = JObject.Parse("{\"id\": 1, \"name\": \"User 1\"}");

            Assert.That(actual, Is.EqualTo(expected));
        }
Exemple #3
0
        public async Task ReqResIn_GetUser_SuccessfullyStoredForFirstCallAndReplayedOnSecond()
        {
            const string uri = "https://reqres.in/api/users/2";
            var          httpClientHandler = new HttpClientHandler();
            var          innerHandler      = new StubHttpRequestHandler(httpClientHandler);
            var          cassette          = new Cassette();
            var          tryReplayHandler  = new TryReplayHttpMessageHandler(cassette, innerHandler);

            using var httpClient = new HttpClient(tryReplayHandler);
            var response = await httpClient.GetAsync(uri);

            Assert.That(innerHandler.Invoked, Is.True);
            await AssertResponse(response);

            Assert.That(cassette.Records, Has.Count.EqualTo(1));
            innerHandler.Invoked = false;

            var date = response.Headers.Date;

            response = await httpClient.GetAsync(uri);
            await AssertResponse(response);

            Assert.That(innerHandler.Invoked, Is.False);
            Assert.That(response.Headers.Date, Is.EqualTo(date));