public void LoadStatusFileTest()
{
StatusFile statusFile = null;
string profileName = "site";
List<string> tests = new List<string>()
{
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<status>" +
"</status>",
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<status>" +
" <state>failed</state>" +
" <startTime>3/17/2014</startTime>" +
" <endTime>3/18/2014</endTime>" +
" <complete>true</complete>" +
" <objectsAdded>100</objectsAdded>" +
" <objectsUpdated>1000</objectsUpdated>" +
" <objectsDeleted>10000</objectsDeleted>" +
" <parametersChanged>100000</parametersChanged>" +
" <bytesCopied>1000000</bytesCopied>" +
"</status>",
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<status>" +
" <state>InvalidState</state>" +
" <startTime>InvalidTime</startTime>" +
" <endTime>InvalidTime</endTime>" +
" <complete>NotBool</complete>" +
" <objectsAdded>NotNum</objectsAdded>" +
" <objectsUpdated>NotNum</objectsUpdated>" +
" <objectsDeleted>NotNum</objectsDeleted>" +
" <parametersChanged>NotNum</parametersChanged>" +
" <bytesCopied>NotNum</bytesCopied>" +
"</status>",
};
var expected = new[]{
new StatusFileTestData(),
new StatusFileTestData(){
State = DeployState.Failed,
StartTime = DateTime.Parse("3/17/2014"),
EndTime = DateTime.Parse("3/18/2014"),
Complete = true,
ObjectsAdded = 100,
ObjectsUpdated = 1000,
ObjectsDeleted = 10000,
ParametersChanged = 100000,
BytesCopied = 1000000
},
new StatusFileTestData()
};
for (int i = 0; i < tests.Count; i++)
{
FileHelper.FileSystem = new MockFileSystem(new Dictionary<string, MockFileData>()
{
{
@"c:\site\status.xml", new MockFileData(tests[i])
}
});
statusFile = new StatusFile(profileName);
statusFile.LoadOrCreate();
VerifyStatusFile(expected[i], statusFile);
}
}