Пример #1
0
        public async Task TestDeserializingByondModelsWork()
        {
            var sample = new ByondResponse
            {
                Version = new Version(511, 1385, 0)
            };

            var sampleJson = JsonConvert.SerializeObject(sample, new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters       = new[] { new VersionConverter() }
            });

            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(sampleJson)
            };

            var httpClient = new Mock <IHttpClient>();

            httpClient.Setup(x => x.SendAsync(It.IsNotNull <HttpRequestMessage>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(response));

            var client = new ApiClient(httpClient.Object, new Uri("http://fake.com"), new ApiHeaders(new ProductHeaderValue("fake"), "fake"), null);

            var result = await client.Read <ByondResponse>(Routes.Byond, default).ConfigureAwait(false);

            Assert.AreEqual(sample.Version, result.Version);
            Assert.AreEqual(0, result.Version.Build);
        }
Пример #2
0
        public async Task TestUnrecognizedResponse()
        {
            var sample = new ByondResponse
            {
                Version = new Version(511, 1385)
            };

            var fakeJson = "asdfasd <>F#(*)U*#JLI";

            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(fakeJson)
            };

            var httpClient = new Mock <IHttpClient>();

            httpClient.Setup(x => x.SendAsync(It.IsNotNull <HttpRequestMessage>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(response));

            var client = new ApiClient(httpClient.Object, new Uri("http://fake.com"), new ApiHeaders(new ProductHeaderValue("fake"), "fake"), null);

            await Assert.ThrowsExceptionAsync <UnrecognizedResponseException>(() => client.Read <ByondResponse>(Routes.Byond, default)).ConfigureAwait(false);
        }