public void DataTableResult_full_parameter_list_from_DataTable() {
     var data = new List<DataTableRow>() {
         new DataTableRow { "hallo" }
     };
     DataTableResultExt dataTableResult = new DataTableResultExt(new DataTable { sEcho = "1" }, 10, 10, data);
     Assert.AreEqual("1", dataTableResult.sEcho);
     Assert.AreEqual(10, dataTableResult.iTotalRecords);
     Assert.AreEqual(10, dataTableResult.iTotalDisplayRecords);
     Assert.AreSame(data, dataTableResult.aaData);
     Assert.AreEqual(JsonRequestBehavior.DenyGet, dataTableResult.JsonRequestBehavior);
 }
        public void DataTableResult_full_parameter_list()
        {
            var data = new List <DataTableRow>()
            {
                new DataTableRow {
                    "hallo"
                }
            };
            DataTableResultExt dataTableResult = new DataTableResultExt("1", 10, 10, data);

            Assert.AreEqual("1", dataTableResult.sEcho);
            Assert.AreEqual(10, dataTableResult.iTotalRecords);
            Assert.AreEqual(10, dataTableResult.iTotalDisplayRecords);
            Assert.AreSame(data, dataTableResult.aaData);
            Assert.AreEqual(JsonRequestBehavior.DenyGet, dataTableResult.JsonRequestBehavior);
        }
        public void ExecuteResult_DT_RowId_Ok()
        {
            //Arrange
            var data = new List <DataTableRow>()
            {
                new DataTableRow("1", "row1")
                {
                    "hallo", "österreich"
                }
            };

            var httpRequest = new Mock <HttpRequestBase>();

            httpRequest.Setup(h => h.HttpMethod)
            .Returns("POST");
            var httpResponse = new Mock <HttpResponseBase>();

            httpResponse.Setup(x => x.ContentEncoding)
            .Returns(Encoding.UTF8);
            StringBuilder result = new StringBuilder();

            httpResponse.Setup(x => x.Output)
            .Returns(new StringWriter(result));
            var httpContext = new Mock <HttpContextBase>();

            httpContext.Setup(h => h.Request)
            .Returns(httpRequest.Object);
            httpContext.Setup(h => h.Response)
            .Returns(httpResponse.Object);
            DataTableResultExt dataTableResult = new DataTableResultExt("1", 10, 10, data);

            //Act
            dataTableResult.ExecuteResult(new ControllerContext {
                HttpContext = httpContext.Object
            });
            //Assert
            Assert.AreEqual(@"{""sEcho"":""1"",""iTotalRecords"":10,""iTotalDisplayRecords"":10,""aaData"":[{""DT_RowId"":""1"",""DT_RowClass"":""row1"",""0"":""hallo"",""1"":""österreich""}]}", result.ToString());
        }
        public void ExecuteResult_Ok() {
            //Arrange
            var data = new List<DataTableRow>() {
                new DataTableRow { "hallo", "österreich"}
            };

            var httpRequest = new Mock<HttpRequestBase>();
            httpRequest.Setup(h => h.HttpMethod)
                       .Returns("POST");
            var httpResponse = new Mock<HttpResponseBase>();
            httpResponse.Setup(x => x.ContentEncoding)
                        .Returns(Encoding.UTF8);            
            StringBuilder result = new StringBuilder();
            httpResponse.Setup(x => x.Output)
                        .Returns(new StringWriter(result));
            var httpContext = new Mock<HttpContextBase>();
            httpContext.Setup(h => h.Request)
                       .Returns(httpRequest.Object);
            httpContext.Setup(h => h.Response)
                       .Returns(httpResponse.Object);
            DataTableResultExt dataTableResult = new DataTableResultExt("1", 10, 10, data);
            //Act            
            dataTableResult.ExecuteResult(new ControllerContext {
                HttpContext = httpContext.Object
            });
            //Assert
            Assert.AreEqual(@"{""sEcho"":""1"",""iTotalRecords"":10,""iTotalDisplayRecords"":10,""aaData"":[{""0"":""hallo"",""1"":""österreich""}]}", result.ToString());
        }