/
ExcelRepositoryTests.cs
133 lines (115 loc) · 5.14 KB
/
ExcelRepositoryTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
using System;
using System.Collections.Generic;
using System.Linq;
using ExcelMapper.Configuration;
using ExcelMapper.Repository;
using ExcelMapper.Tests.DTO;
using NUnit.Framework;
using Rhino.Mocks;
using StructureMap.AutoMocking;
using ExcelMapper.Repository.Extensions;
namespace ExcelMapper.Tests.Repository
{
public class ExcelRepositoryTests
{
[TestFixture]
public class When_asked_to_retrieve_an_entity_from_an_Excel_file
{
private IDataProvider _dataProvider;
private DateTime _fileModifiedDate;
private IFileService _fileService;
private IRepository _repository;
private List<User> _users;
[SetUp]
public void SetUp()
{
_users = new List<User>
{
new User
{
Id = 1,
LastName = "LastName",
FirstName = "FirstName"
}
};
_fileModifiedDate = Convert.ToDateTime("1/1/2009");
var autoMocker = new RhinoAutoMocker<ExcelRepository>();
_fileService = autoMocker.Get<IFileService>();
_dataProvider = autoMocker.Get<IDataProvider>();
_repository = autoMocker.ClassUnderTest;
_fileService.Expect(x => x.GetLastModifiedDate("")).IgnoreArguments().Return(_fileModifiedDate).Repeat.
Any();
_dataProvider.Expect(x => x.Get<User>("")).IgnoreArguments().Return(_users);
}
[Test]
public void Should_get_the_values_from_cache_or_file()
{
List<User> result = _repository.Get<User>("").ToList();
result = _repository.Get<User>("").ToList();
Assert.AreEqual(_users.Count, result.Count);
}
}
[TestFixture]
public class When_asked_to_Save_an_entity_into_an_excel_file
{
private const string Testfile = "TestFile";
private IDataProvider _dataProvider;
private IRepository _excelRepository;
private IFileConfiguration _fileConfiguration;
private IFileService _fileService;
private List<User> _users;
[SetUp]
public void SetUp()
{
_users = new List<User>
{
new User
{
Id = 1,
LastName = "LastName",
FirstName = "FirstName"
}
};
Convert.ToDateTime("1/1/2009");
var autoMocker = new RhinoAutoMocker<ExcelRepository>();
_fileService = autoMocker.Get<IFileService>();
_dataProvider = autoMocker.Get<IDataProvider>();
_excelRepository = autoMocker.ClassUnderTest;
_fileConfiguration = autoMocker.Get<IFileConfiguration>();
_fileConfiguration.Expect(x => x.FileName).Return(Testfile).Repeat.Any();
}
[Test]
public void Should_create_an_Excel_file_if_it_doesnot_exists()
{
_fileService.Expect(x => x.Exists(Testfile)).Return(true);
_dataProvider.Expect(x => x.GetTableNames()).Return(new List<string>());
_excelRepository.Save(_users);
_fileService.AssertWasNotCalled(x => x.Create(Testfile));
}
[Test]
public void Should_create_the_WorkSheet_if_it_doesnot_exist()
{
_fileService.Expect(x => x.Exists(Testfile)).Return(true);
_dataProvider.Expect(x => x.GetTableNames()).Return(new List<string>());
_excelRepository.Save(_users);
_dataProvider.AssertWasCalled(x => x.CreateTable<User>());
}
[Test]
public void Should_not_create_the_WorkSheet_if_it_exists()
{
_fileService.Expect(x => x.Exists(Testfile)).Return(true);
_dataProvider.Expect(x => x.GetTableNames()).Return(new List<string> {typeof (User).Name.GetWorkSheetName()});
_excelRepository.Save(_users);
_dataProvider.AssertWasNotCalled(x => x.CreateTable<User>());
}
[Test]
public void Should_save_the_values_in_to_excel()
{
_fileService.Expect(x => x.Exists(Testfile)).Return(true);
_dataProvider.Expect(x => x.GetTableNames()).Return(new List<string> { typeof(User).Name.GetWorkSheetName() });
_excelRepository.Save(_users);
_dataProvider.AssertWasCalled(x => x.Put(_users));
}
}
}
}