96 lines
2.7 KiB
C#
96 lines
2.7 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using MileageTraker.Web.DAL;
|
|
using NUnit.Framework;
|
|
|
|
namespace Web.Tests.DAL
|
|
{
|
|
[TestFixture]
|
|
public class FuelmanCsvImporterTests
|
|
{
|
|
private const string LogFolder = @"DAL\FuelLogDocs\";
|
|
|
|
[Test]
|
|
public void Import_Gets_More_Than_One_Result()
|
|
{
|
|
var fuelLogs = FuelmanCsvImporter.Import(new FileInfo(LogFolder + "TRN85E_150837_2015-07-31_1C758D97D46F565.csv"));
|
|
Assert.That(fuelLogs, Has.Count.EqualTo(191));
|
|
foreach (var fuelLog in fuelLogs)
|
|
{
|
|
Console.WriteLine("{0} {1} {2} {3}", fuelLog.Date, fuelLog.DriverFullName, fuelLog.TagNumber, fuelLog.CityName);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Import_Gets_All_Fields()
|
|
{
|
|
var fuelLogs = FuelmanCsvImporter.Import(new FileInfo(LogFolder + "OneLog.csv")).ToList();
|
|
Assert.That(fuelLogs, Has.Count.EqualTo(1));
|
|
|
|
var fuelLog = fuelLogs[0];
|
|
Assert.That(fuelLog.Date, Is.EqualTo(new DateTime(2015,7,1, 8,8,0)));
|
|
Assert.That(fuelLog.DriverFullName, Is.EqualTo("Sherry Seal"));
|
|
Assert.That(fuelLog.TagNumber, Is.EqualTo("4584GA"));
|
|
Assert.That(fuelLog.Odometer, Is.EqualTo(129368));
|
|
Assert.That(fuelLog.CityName, Is.EqualTo("Mooresburg"));
|
|
Assert.That(fuelLog.MPG, Is.EqualTo(19.2));
|
|
Assert.That(fuelLog.GasPurchased, Is.EqualTo(2.442));
|
|
Assert.That(fuelLog.TotalPrice, Is.EqualTo(4.99));
|
|
}
|
|
|
|
[Test]
|
|
public void Import_Tsv()
|
|
{
|
|
var fuelLogs = FuelmanCsvImporter.Import(new FileInfo(LogFolder + "August2015Fuelman.txt"));
|
|
Assert.That(fuelLogs, Has.Count.EqualTo(197));
|
|
foreach (var fuelLog in fuelLogs)
|
|
{
|
|
Console.WriteLine("{0} {1} {2} {3}", fuelLog.Date, fuelLog.DriverFullName, fuelLog.TagNumber, fuelLog.CityName);
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void Import_Bad_Format_Gets_No_Results()
|
|
{
|
|
var fuelLogs = FuelmanCsvImporter.Import(new FileInfo(LogFolder + "BadFormat.csv"));
|
|
Assert.That(fuelLogs.Count, Is.EqualTo(0));
|
|
}
|
|
|
|
[Test]
|
|
public void Import_NonFuel_Does_Not_Import()
|
|
{
|
|
var fuelLogs = FuelmanCsvImporter.Import(new FileInfo(LogFolder + "OneCarWashOneFuel.csv"));
|
|
Assert.That(fuelLogs.Count, Is.EqualTo(1));
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ImportException))]
|
|
public void Import_BadDate()
|
|
{
|
|
FuelmanCsvImporter.Import(new FileInfo(LogFolder + "BadDate.csv"));
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ImportException))]
|
|
public void Import_MissingField()
|
|
{
|
|
FuelmanCsvImporter.Import(new FileInfo(LogFolder + "MissingField.csv"));
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ImportException))]
|
|
public void Import_No_File()
|
|
{
|
|
FuelmanCsvImporter.Import(new FileInfo(LogFolder + "No File Here.csv"));
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ImportException))]
|
|
public void Import_Xls()
|
|
{
|
|
FuelmanCsvImporter.Import(new FileInfo(@"DAL\LogDocs\" + "Logs.xls"));
|
|
}
|
|
}
|
|
}
|