public void ResolveId_CreatesExpectedString(string token, string expected) { // Arrange ParameterInfo parameter = EasyTableTestHelper.GetValidInputItemParameters().First(); var easyTableContext = new EasyTableContext() { ResolvedId = token }; var bindingContract = new Dictionary <string, Type>(); bindingContract.Add("MyItemId", typeof(string)); var bindingProviderContext = new BindingProviderContext(parameter, bindingContract, CancellationToken.None); var binding = new EasyTableItemBinding(parameter, easyTableContext, bindingProviderContext); var bindingData = new Dictionary <string, object>(); bindingData.Add("MyItemId", "abc123"); // Act var resolved = binding.ResolveId(bindingData); // Assert Assert.Equal(expected, resolved); }
public void GetValue_ReturnsCorrectType() { var parameter = EasyTableTestHelper.GetValidInputQueryParameters().Single(); var context = new EasyTableContext() { Client = new MobileServiceClient("http://someuri") }; var provider = new EasyTableQueryValueProvider<TodoItem>(parameter, context); var value = provider.GetValue(); Assert.True(typeof(IMobileServiceTableQuery<TodoItem>).IsAssignableFrom(value.GetType())); }
public void GetValue_PocoWithTableName_ReturnsCorrectTable() { // Arrange var parameter = EasyTableTestHelper.GetValidInputTableParameters() .Where(p => p.ParameterType == typeof(IMobileServiceTable <TodoItem>)).Single(); var provider = new EasyTableTableValueProvider <TodoItem>(parameter, GetContext("SomeOtherTable")); // Act IMobileServiceTable <TodoItem> value = provider.GetValue() as IMobileServiceTable <TodoItem>; // Assert Assert.NotNull(value); Assert.Equal("SomeOtherTable", value.TableName); }
public async Task BindAsync_Returns_CorrectValueProvider() { // Arrange var parameter = EasyTableTestHelper.GetValidInputQueryParameters().Single(); var expectedType = typeof(EasyTableQueryValueProvider <TodoItem>); var easyTableContext = new EasyTableContext(); var binding = new EasyTableQueryBinding(parameter, easyTableContext); // Act var valueProvider = await binding.BindAsync(null, null); // Assert Assert.Equal(expectedType, valueProvider.GetType()); }
public void GetValue_WithTableName_ReturnsCorrectType() { var parameter = EasyTableTestHelper.GetValidInputQueryParameters().Single(); var context = new EasyTableContext() { Client = new MobileServiceClient("http://someuri"), ResolvedTableName = "SomeOtherTable" }; var provider = new EasyTableQueryValueProvider<TodoItem>(parameter, context); var value = provider.GetValue() as IMobileServiceTableQuery<TodoItem>; Assert.NotNull(value); Assert.Equal("SomeOtherTable", value.Table.TableName); }
public void GetValue_Poco_QueriesCorrectTable() { // Arrange var handler = new TestHandler("{}"); var context = new EasyTableContext { Client = new MobileServiceClient("https://someuri", handler) }; var parameter = EasyTableTestHelper.GetInputParameter <TodoItem>(); var binder = new EasyTableItemValueBinder <TodoItem>(parameter, context, "abc123"); // Act var value = binder.GetValue(); // Assert Assert.NotNull(value); Assert.Equal("https://someuri/tables/TodoItem/abc123", handler.IssuedRequest.RequestUri.ToString()); }
public void GetValue_JObject_Throws_WhenErrorResponse() { // Arrange var parameter = EasyTableTestHelper.GetInputParameter <JObject>(); Mock <IMobileServiceTable> mockTable; Mock <IMobileServiceClient> mockClient; IValueBinder binder = CreateJObjectBinder(parameter, out mockClient, out mockTable); mockTable .Setup(m => m.LookupAsync("abc123")) .Throws(new MobileServiceInvalidOperationException(string.Empty, null, new HttpResponseMessage(HttpStatusCode.ServiceUnavailable))); // Act var ex = Assert.Throws <MobileServiceInvalidOperationException>(() => binder.GetValue()); // Assert Assert.Equal(HttpStatusCode.ServiceUnavailable, ex.Response.StatusCode); }
public void GetValue_Poco_DoesNotThrow_WhenResponseIsNotFound() { // Arrange var parameter = EasyTableTestHelper.GetInputParameter <TodoItem>(); Mock <IMobileServiceTable <TodoItem> > mockTable; Mock <IMobileServiceClient> mockClient; IValueBinder binder = CreatePocoBinder(parameter, out mockClient, out mockTable); mockTable .Setup(m => m.LookupAsync("abc123")) .ThrowsAsync(new MobileServiceInvalidOperationException(string.Empty, null, new HttpResponseMessage(HttpStatusCode.NotFound))); // Act var value = binder.GetValue(); // Assert Assert.Null(value); mockTable.VerifyAll(); mockClient.VerifyAll(); }
public void GetValue_Poco_QueriesItem() { // Arrange var parameter = EasyTableTestHelper.GetInputParameter <TodoItem>(); Mock <IMobileServiceTable <TodoItem> > mockTable; Mock <IMobileServiceClient> mockClient; IValueBinder binder = CreatePocoBinder(parameter, out mockClient, out mockTable); var response = new TodoItem(); mockTable .Setup(m => m.LookupAsync("abc123")) .Returns(Task.FromResult(response)); // Act var value = binder.GetValue(); // Assert Assert.Same(response, value); mockTable.VerifyAll(); mockClient.VerifyAll(); }