Skip to content

Commit

Permalink
Merge branch 'nkilian-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
paulyoder committed Jul 28, 2014
2 parents 1fb87b3 + 2015dc1 commit ce83cf4
Show file tree
Hide file tree
Showing 12 changed files with 554 additions and 13 deletions.
Binary file modified src/LinqToExcel.Tests/ExcelFiles/Companies.xls
Binary file not shown.
Binary file modified src/LinqToExcel.Tests/ExcelFiles/Companies.xlsx
Binary file not shown.
22 changes: 21 additions & 1 deletion src/LinqToExcel.Tests/ExcelQueryFactoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public void GetWorksheetNames_does_not_include_builtin_worksheets()
string.Join(", ", worksheetNames.ToArray()));
}

//[Test] This test is no longer passing. I believe it has something to do with my computer settings
[Test] //This test is no longer passing. I believe it has something to do with my computer settings
public void GetWorksheetNames_does_not_include_named_ranges()
{
var excel = new ExcelQueryFactory(_excelFileWithNamedRanges);
Expand All @@ -110,6 +110,26 @@ public void GetWorksheetNames_does_not_include_named_ranges()
string.Join(", ", worksheetNames.ToArray()));
}

[Test]
public void GetNamedRanges()
{
var excel = new ExcelQueryFactory(_excelFileWithNamedRanges);
var namedRanges = excel.GetNamedRanges(excel.GetWorksheetNames().First());
Assert.AreEqual(
"NameCell",
string.Join(", ", namedRanges.ToArray()));
}

[Test]
public void GetNamedRangeValue()
{
var excel = new ExcelQueryFactory(_excelFileWithNamedRanges);
var firstCellValue = excel.NamedRangeNoHeader("Tabelle1", "NameCell").First().First().Value;
Assert.AreEqual(
"NameCell",
firstCellValue);
}

[Test]
public void GetWorksheetNames_does_not_delete_apostrophes_in_middle_of_worksheet_name()
{
Expand Down
2 changes: 2 additions & 0 deletions src/LinqToExcel.Tests/LinqToExcel.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@
<Compile Include="Convention_SQLStatements_UnitTests.cs" />
<Compile Include="Company.cs" />
<Compile Include="Convention_IntegrationTests.cs" />
<Compile Include="NamedRange_IntegrationTests.cs" />
<Compile Include="NamedRange_SQLStatements_UnitTests.cs" />
<Compile Include="CSV_IntegrationTests.cs" />
<Compile Include="CSV_SQLStatements_UnitTests.cs" />
<Compile Include="ConnectionString_UnitTests.cs" />
Expand Down
104 changes: 104 additions & 0 deletions src/LinqToExcel.Tests/NamedRange_IntegrationTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MbUnit.Framework;
using System.IO;

namespace LinqToExcel.Tests
{
[Author("Paul Yoder", "paulyoder@gmail.com")]
[FixtureCategory("Integration")]
[TestFixture]
public class NamedRange_IntegrationTests
{
ExcelQueryFactory _factory;
string _excelFileName;

[TestFixtureSetUp]
public void fs()
{
var testDirectory = AppDomain.CurrentDomain.BaseDirectory;
var excelFilesDirectory = Path.Combine(testDirectory, "ExcelFiles");
_excelFileName = Path.Combine(excelFilesDirectory, "Companies.xls");
}

[SetUp]
public void s()
{
_factory = new ExcelQueryFactory(_excelFileName);
}

[Test]
public void GetNamedRanges()
{
var namedRanges = from c in _factory.GetNamedRanges()
select c;

Assert.AreEqual("Companies, CompaniesRange, MoreCompanies", string.Join(", ", namedRanges.ToArray()), "Workbook-scope");
}

[Test]
public void GetCompaniesRangeNamedRanges()
{
var namedRanges = from c in _factory.GetNamedRanges("Range1")
select c;

Assert.AreEqual("CompaniesRange", string.Join(", ", namedRanges.ToArray()), "Worksheet-scope");
}

[Test]
public void use_sheetData_and_worksheetIndex()
{
var companies = from c in _factory.NamedRange<Company>(4, "CompaniesRange")
select c;

Assert.AreEqual(7, companies.Count(), "Count");
Assert.AreEqual("ACME", companies.First().Name, "First Company Name");
}

[Test]
public void use_row_and_worksheetIndex()
{
var companies = from c in _factory.NamedRange(4, "CompaniesRange")
select c;

Assert.AreEqual(7, companies.Count(), "Count");
Assert.AreEqual("Ontario Systems", companies.Last()["Name"].ToString(), "Last Company Name");
}


[Test]
public void use_sheetData_where_null()
{
var factory = new ExcelQueryFactory(_excelFileName + "x");
var companies = from c in factory.NamedRange<Company>("NullCellCompanies")
where c.EmployeeCount == null
select c;

Assert.AreEqual(2, companies.Count(), "Count");
}

[Test]
public void use_row_where_null()
{
var factory = new ExcelQueryFactory(_excelFileName + "x");
var companies = from c in factory.NamedRange("NullCellCompanies")
where c["EmployeeCount"] == null
select c;

Assert.AreEqual(2, companies.Count(), "Count");
}

[Test]
public void use_row_no_header_where_null()
{
var factory = new ExcelQueryFactory(_excelFileName + "x");
var companies = from c in factory.NamedRangeNoHeader("NullCellCompanies")
where c[2] == null
select c;

Assert.AreEqual(2, companies.Count(), "Count");
}
}
}
78 changes: 78 additions & 0 deletions src/LinqToExcel.Tests/NamedRange_SQLStatements_UnitTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MbUnit.Framework;
using System.Data.OleDb;

namespace LinqToExcel.Tests
{
[Author("Paul Yoder", "paulyoder@gmail.com")]
[FixtureCategory("Unit")]
[TestFixture]
public class NamedRange_SQLStatements_UnitTests : SQLLogStatements_Helper
{
private IExcelQueryFactory _factory;

[TestFixtureSetUp]
public void fs()
{
InstantiateLogger();
}

[SetUp]
public void s()
{
ClearLogEvents();
_factory = new ExcelQueryFactory("");
}

[Test]
public void Appends_named_range_info_to_table_name()
{
var companies = from c in _factory.NamedRange("Sheet1", "NamedRange")
select c;

try { companies.GetEnumerator(); }
catch (OleDbException) { }
Assert.AreEqual("SELECT * FROM [Sheet1$NamedRange]", GetSQLStatement());
}

[Test]
public void use_sheetData_method()
{
var companies = from c in _factory.NamedRange<Company>("Sheet1", "NamedRange")
select c;

try { companies.GetEnumerator(); }
catch (OleDbException) { }
Assert.AreEqual("SELECT * FROM [Sheet1$NamedRange]", GetSQLStatement());
}

[Test]
public void use_row_where_is_null()
{
var companies = from c in _factory.NamedRange("Sheet1", "NamedRange")
where c["City"] == null
select c;
//System.Diagnostics.Debugger.Launch();
try { companies.GetEnumerator(); }
catch (OleDbException) { }
var expectedSql = string.Format("SELECT * FROM [Sheet1$NamedRange] WHERE ({0} IS NULL)", GetSQLFieldName("City"));
Assert.AreEqual(expectedSql, GetSQLStatement());
}

[Test]
public void use_sheetData_where_is_null()
{
var companies = from c in _factory.NamedRange<Company>("worksheetName", "NamedRange")
where c.Name == null
select c;

try { companies.GetEnumerator(); }
catch (OleDbException) { }
var expectedSql = string.Format("SELECT * FROM [worksheetName$NamedRange] WHERE ({0} IS NULL)", GetSQLFieldName("Name"));
Assert.AreEqual(expectedSql, GetSQLStatement());
}
}
}
Loading

0 comments on commit ce83cf4

Please sign in to comment.