Files
InventoryTraker-Box/InventoryTraker.Web.Tests/Services/InventoryImporterTests.cs
T
2016-10-18 11:10:01 -04:00

64 lines
1.5 KiB
C#

using System;
using System.IO;
using AutoMapper;
using InventoryTraker.Web.Services;
using NUnit.Framework;
namespace InventoryTraker.Web.Tests.Services
{
[TestFixture]
public class InventoryImporterTests
{
private readonly string _documentFolder =
AppDomain.CurrentDomain.BaseDirectory + @"\Utilities\Documents\";
private IMapper _mapper;
[OneTimeSetUp]
public void StartUp()
{
_mapper = AutoMapperConfig.Config.CreateMapper();
}
[Test]
public void Import()
{
var fileInfo = new FileInfo(Path.Combine(_documentFolder, "InventoryData.xlsx"));
var importer = new InventoryImporter(_mapper);
var inventories = importer.Import(fileInfo);
foreach (var inventory in inventories)
{
Console.WriteLine($"{inventory.Id} {inventory.ProgramName} {inventory.ShredReadyDate}");
}
}
[Test]
public void Import_BadDate()
{
var fileInfo = new FileInfo(Path.Combine(_documentFolder, "InventoryData-BadDate.xlsx"));
var importer = new InventoryImporter(_mapper);
var importException = Assert.Throws<ImportException>(() => importer.Import(fileInfo));
Assert.That(importException.Message, Does.Contain("Date"));
}
[Test]
public void Import_BadHeader()
{
var fileInfo = new FileInfo(Path.Combine(_documentFolder, "InventoryData-BadHeader.xlsx"));
var importer = new InventoryImporter(_mapper);
var importException = Assert.Throws<ImportException>(() => importer.Import(fileInfo));
Assert.That(importException.Message, Does.Contain("Program Name"));
}
}
}