Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 0 additions & 71 deletions Mvc.Jquery.DataTables.Tests/EF/EntityFramework.cs

This file was deleted.

11 changes: 0 additions & 11 deletions Mvc.Jquery.DataTables.Tests/EF/SomeModel.cs

This file was deleted.

7 changes: 0 additions & 7 deletions Mvc.Jquery.DataTables.Tests/EF/SomeView.cs

This file was deleted.

68 changes: 57 additions & 11 deletions Mvc.Jquery.DataTables.Tests/Fixtures/EntityFramework.cs
Original file line number Diff line number Diff line change
@@ -1,38 +1,84 @@
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.IO;
using Mvc.JQuery.Datatables;
using NUnit.Framework;
using System;
using System.Linq;
using System.Collections.Generic;
using Mvc.JQuery.Datatables;

namespace Mvc.JQuery.DataTables.Tests
{
public abstract class EntityFramework : Linq
public class EntityFramework : Linq, IDisposable
{
public class SomeContext : DbContext
{
public DbSet<SomeModel> Models { get; set; }
}

protected readonly SomeContext DataContext;

public EntityFramework(SomeContext dataContext)
private readonly IDbConnectionFactory _defaultConnectionFactory;
private SomeContext _dataContext;
protected SomeContext DataContext
{
DataContext = dataContext;
if (DataContext.Models.Any())
get { return _dataContext; }
set
{
DataContext.Database.ExecuteSqlCommand("DELETE FROM SomeModels");
_dataContext = value;
SomeModelQueryable = (_dataContext==null)?null:_dataContext.Models.AsQueryable();
}
foreach (var sm in SomeModelQueryable)
}

protected const string DbFile = "Test.sdf";
protected const string Password = "1234567890";

public EntityFramework()
: this(new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0", "",
string.Format("Data Source=\"{0}\";Password={1}", DbFile, Password))) { }

public EntityFramework(IDbConnectionFactory connectionFactory)
{
_defaultConnectionFactory = Database.DefaultConnectionFactory;
Database.DefaultConnectionFactory = connectionFactory;
var oldQueryable = SomeModelQueryable;
DataContext = new SomeContext();
DataContext.Database.Initialize(true);
foreach (var sm in oldQueryable)
{
DataContext.Models.Add(sm);
}
DataContext.SaveChanges();
}

SomeModelQueryable = DataContext.Models;
[Test, TestCaseSource(typeof(MyFactoryClass), "TestCases")]
public override int[] ExecuteParams(DataTablesParam dataTablesParam)
{
DataContext.Dispose(); //reset datacontext in order to clear local
DataContext = new SomeContext();
int[] returnVar = base.ExecuteParams(dataTablesParam);
Assert.AreEqual(returnVar.Length, DataContext.Models.Local.Count, "records loaded in memory");
return returnVar;
}

#region IDisposable implementation
private bool _disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
if (DataContext != null) { DataContext.Dispose(); }
if (File.Exists(DbFile)) { File.Delete(DbFile); }
Database.DefaultConnectionFactory = _defaultConnectionFactory;
}
_disposed = true;
}
}
#endregion
}
}
41 changes: 0 additions & 41 deletions Mvc.Jquery.DataTables.Tests/Fixtures/EntityFrameworkCe.cs

This file was deleted.

91 changes: 47 additions & 44 deletions Mvc.Jquery.DataTables.Tests/Fixtures/Linq.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace Mvc.JQuery.DataTables.Tests
{
Expand All @@ -15,7 +13,7 @@ public class Linq
internal const int SomeModelPropertyCount = 4;
internal const int SomeViewPropertyCount = 4;
private const int TotalRecords = 100;
private const int DisplayLength = 5;
internal const int DisplayLength = 5;

protected IQueryable<SomeModel> SomeModelQueryable { get; set; }

Expand All @@ -34,49 +32,19 @@ public Linq()
}
SomeModelQueryable = dataSet.AsQueryable();
}
[Test(Description = "Simple Ordering")]
public void SimpleOrder()

[Test, TestCaseSource(typeof(MyFactoryClass), "TestCases")]
public virtual int[] ExecuteParams(DataTablesParam dataTablesParam)
{
var dataTablesParam = EmptyParam();
dataTablesParam.sSortDir[0] = "asc";
dataTablesParam.iSortingCols = 1;
var result = DataTablesResult.Create(SomeModelQueryable, //DataContext.Models,
var result = DataTablesResult.Create(SomeModelQueryable,
dataTablesParam,
model => model);
var data = (DataTablesData)result.Data;
Assert.AreEqual(data.RecordIds(), Enumerable.Range(1, DisplayLength).ToArray());
return data.RecordIds();
}
[Test(Description = "Simple Ordering with transform to view model")]
public void SimpleOrderAndTransform()
{
var dataTablesParam = EmptyParam();
dataTablesParam.sSortDir[0] = "asc";
dataTablesParam.iSortingCols = 1;
Assert.AreEqual(ExecuteParams(dataTablesParam).RecordIds(), Enumerable.Range(1, DisplayLength).ToArray());
}

[Test(Description = "Single Record Text Search")]
public void SingleRecordSearch()
{
var dataTablesParam = EmptyParam();
//dataTablesParam.sSortDir[0] = "asc";
dataTablesParam.sSearch = "Name 10";

Assert.AreEqual(ExecuteParams(dataTablesParam).RecordIds(), new int[] { 10 });
}
[Test(Description = "Combination of Sort, Filter & Paginate")]
public void SortFilterPage()
{
var dataTablesParam = EmptyParam();
dataTablesParam.iSortingCols = 1;
dataTablesParam.iSortCol[0] = 2;
dataTablesParam.sSearchColumns[3] = "25~35";
dataTablesParam.iDisplayStart = 6;
var result = ExecuteParams(dataTablesParam).RecordIds();
Assert.AreEqual(ExecuteParams(dataTablesParam).RecordIds(), new int[] { 17,21,25,77,81 });
}
private DataTablesData ExecuteParams(DataTablesParam dataTablesParam)
[Test, TestCaseSource(typeof(MyFactoryClass), "TestCases")]
public virtual int[] ExecuteParamsAndTransform(DataTablesParam dataTablesParam)
{
var result = DataTablesResult.Create(SomeModelQueryable,
dataTablesParam,
Expand All @@ -87,10 +55,44 @@ private DataTablesData ExecuteParams(DataTablesParam dataTablesParam)
ViewScale = model.Scale,
Id = model.Id
});
return (DataTablesData)result.Data;
var data = (DataTablesData)result.Data;
return data.RecordIds();
}
}
public static class MyFactoryClass
{
public static IEnumerable TestCases
{
get
{
var dataTablesParam = EmptyParam();
dataTablesParam.sSortDir[0] = "asc";
dataTablesParam.iSortingCols = 1;
yield return new TestCaseData(dataTablesParam)
.Returns(Enumerable.Range(1, Linq.DisplayLength).ToArray())
.SetName("SimpleOrder")
.SetDescription("Simple Ordering");

dataTablesParam = EmptyParam();
dataTablesParam.sSearch = "Name 10";
yield return new TestCaseData(dataTablesParam)
.Returns(new int[] { 10 })
.SetName("SingleRecordSearch")
.SetDescription("Single Record Text Search");

protected static DataTablesParam EmptyParam(int columns = SomeModelPropertyCount)
dataTablesParam = EmptyParam();
dataTablesParam.iSortingCols = 1;
dataTablesParam.iSortCol[0] = 2;
dataTablesParam.sSearchColumns[3] = "25~35";
dataTablesParam.iDisplayStart = 6;
yield return new TestCaseData(dataTablesParam)
.Returns(new int[] { 17, 21, 25, 77, 81 })
.SetName("SortFilterPage")
.SetDescription("Combination of Sort, Filter & Paginate");
}
}

public static DataTablesParam EmptyParam(int columns = Linq.SomeModelPropertyCount)
{
return new DataTablesParam
{
Expand All @@ -99,8 +101,8 @@ protected static DataTablesParam EmptyParam(int columns = SomeModelPropertyCount
bSearchable = LinqTestStaticMethods.Populate<bool>(true, columns),
bSortable = LinqTestStaticMethods.Populate<bool>(true, columns),
iColumns = columns,
iDisplayLength = DisplayLength,
iSortingCols=1,
iDisplayLength = Linq.DisplayLength,
iSortingCols = 1,
iSortCol = LinqTestStaticMethods.Populate<int>(0, columns),
sEcho = 1,
sSearchColumns = LinqTestStaticMethods.Populate<string>("", columns),
Expand All @@ -109,6 +111,7 @@ protected static DataTablesParam EmptyParam(int columns = SomeModelPropertyCount
};
}
}

public static class LinqTestStaticMethods
{
public static int[] RecordIds(this DataTablesData data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,8 @@
<Compile Include="DummyPocos\SomeModel.cs" />
<Compile Include="DummyPocos\SomeView.cs" />
<Compile Include="Fixtures\EntityFramework.cs" />
<Compile Include="Fixtures\EntityFrameworkCe.cs" />
<Compile Include="Fixtures\Linq.cs" />
<Compile Include="EF\EntityFramework.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="EF\SomeModel.cs" />
<Compile Include="EF\SomeView.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
Expand Down