public void TestCreateOrUpdateQuotaAsync_Normal_CorrectQuotaFrame() { const string surveyId = "surveyId"; var quota = new QuotaLevel(true) { Target = 10, GrossTarget = 15, Attributes = new Collection<QuotaAttribute> { new QuotaAttribute {Name = "Attribute", IsSelectionOptional = true, OdinVariable = "var"} } }; var mockedNfieldConnection = new Mock<INfieldConnectionClient>(); var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection); mockedHttpClient .Setup(client => client.PutAsJsonAsync(It.IsAny<string>(), It.IsAny<QuotaLevel>())) .Returns(CreateTask(HttpStatusCode.OK, new StringContent(""))); var target = new NfieldSurveysService(); target.InitializeNfieldConnection(mockedNfieldConnection.Object); target.CreateOrUpdateQuotaAsync(surveyId, quota).Wait(); mockedHttpClient.Verify(hc => hc.PutAsJsonAsync(It.IsAny<string>(), quota), Times.Once()); }
/// <summary> /// <see cref="INfieldSurveysService.CreateOrUpdateQuotaAsync"/> /// </summary> public Task<QuotaLevel> CreateOrUpdateQuotaAsync(string surveyId, QuotaLevel quota) { string uri = string.Format(@"{0}{1}/{2}", SurveysApi.AbsoluteUri, surveyId, QuotaControllerName); return Client.PutAsJsonAsync(uri, quota) .ContinueWith( responseMessageTask => responseMessageTask.Result.Content.ReadAsStringAsync().Result) .ContinueWith( stringTask => JsonConvert.DeserializeObject<QuotaLevel>(stringTask.Result)) .FlattenExceptions(); }
public void TestQuotaQueryAsync_ServerReturnsQuery_ReturnsListWithQuotaLevel() { const string levelId = "LevelId"; const string name = "Name"; var expectedQuotaLevel = new QuotaLevel { Id = levelId, Name = name }; var mockedNfieldConnection = new Mock<INfieldConnectionClient>(); var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection); mockedHttpClient .Setup(client => client.GetAsync(ServiceAddress + "surveys/1/quota")) .Returns(CreateTask(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(expectedQuotaLevel)))); var target = new NfieldSurveysService(); target.InitializeNfieldConnection(mockedNfieldConnection.Object); var actualQuotaLevel = target.QuotaQueryAsync("1").Result; mockedHttpClient.Verify(hc => hc.GetAsync(It.IsAny<string>()), Times.Once()); Assert.Equal(expectedQuotaLevel.Id, actualQuotaLevel.Id); Assert.Equal(expectedQuotaLevel.Name, actualQuotaLevel.Name); }