public void Get_Returns_BadRequest400_When_All_SQL_Parameters_Cannot_Be_Resolved() { const string query = "SELECT * FROM tblProducts WHERE ProductId = @ProductId"; var binding = new QueryBinding(new RouteBinding(config, "api/products/{productId}", null), query); binding.Returns <object>(); //create a fake binding that won't get executed anyway controller.ControllerContext.RouteData.Values[DataApiConstants.QueryBindingKey] = binding; var exception = Assert.Throws <HttpResponseException>(() => controller.Get()); Assert.That(exception.Response.StatusCode == System.Net.HttpStatusCode.BadRequest); }
public void Get_Returns_Single_Product() { //Arrange const string query = "SELECT * FROM tblProducts"; var mockDataSource = new Mock <ISQLDataSource>(); mockDataSource.Setup(ds => ds.ExecuteQuery(query, It.IsAny <Dictionary <string, object> >())).Returns(CreateDataTable()); var binding = new QueryBinding(new RouteBinding(config, "api/products/{productId}", mockDataSource.Object), query); binding.Returns <Product>(); controller.ControllerContext.RouteData.Values[DataApiConstants.QueryBindingKey] = binding; //Act var responseObject = controller.Get(); //Assert responseObject.ShouldBeOfType <Product>(); }