UnitTests/MockFileIOProviderTest.cs
using System.Linq;
namespace SandbankDatabase;
[TestClass]
public partial class MockFileIOProviderTest
{
[TestMethod]
public void CreateDirectory()
{
var provider = new MockFileIOProvider();
provider.CreateDirectory( "test/test2" );
Assert.IsTrue( provider.DirectoryExists( "test/test2" ) );
}
[TestMethod]
public void DeleteDirectory()
{
var provider = new MockFileIOProvider();
Assert.IsTrue( provider.DirectoryExists( "" ) );
Assert.IsTrue( provider.DirectoryExists( "/" ) );
Assert.IsFalse( provider.DirectoryExists( "test/test2" ) );
provider.CreateDirectory( "test/test2" );
Assert.IsTrue( provider.DirectoryExists( "test/test2" ) );
provider.DeleteDirectory( "test/test2" );
Assert.IsFalse( provider.DirectoryExists( "test/test2" ) );
provider.CreateDirectory( "test/test2" );
Assert.IsTrue( provider.DirectoryExists( "test/test2" ) );
provider.DeleteDirectory( "test" );
Assert.IsFalse( provider.DirectoryExists( "test/test2" ) );
Assert.IsFalse( provider.DirectoryExists( "test" ) );
}
[TestMethod]
public void WriteAllText()
{
var provider = new MockFileIOProvider();
provider.WriteAllText( "hello/there/test.txt", "This is a test file" );
Assert.AreEqual( "This is a test file", provider.ReadAllText( "hello/there/test.txt" ) );
}
[TestMethod]
public void ReadAllText()
{
var provider = new MockFileIOProvider();
Assert.AreEqual( null, provider.ReadAllText( "hello/testing/test.txt" ) );
}
[TestMethod]
public void FindFile()
{
var provider = new MockFileIOProvider();
provider.WriteAllText( "/folder/testing/a.txt", "A" );
provider.WriteAllText( "/folder/testing/b.txt", "B" );
provider.WriteAllText( "/folder/testing/c.txt", "C" );
var files = provider.FindFile( "folder/testing" ).ToList();
Assert.IsTrue( files.Count == 3 );
Assert.IsTrue( files.Contains( "a.txt" ) );
Assert.IsTrue( files.Contains( "b.txt" ) );
Assert.IsTrue( files.Contains( "c.txt" ) );
}
[TestMethod]
public void DeleteFile()
{
var provider = new MockFileIOProvider();
provider.WriteAllText( "/folder/testing/a.txt", "A" );
provider.WriteAllText( "/folder/testing/b.txt", "B" );
provider.WriteAllText( "/folder/testing/c.txt", "C" );
var files = provider.FindFile( "folder/testing" ).ToList();
Assert.IsTrue( files.Count == 3 );
provider.DeleteFile( "folder/testing/b" );
files = provider.FindFile( "folder/testing" ).ToList();
Assert.IsTrue( files.Count == 3 );
provider.DeleteFile( "folder/testing/b.txt" );
files = provider.FindFile( "folder/testing" ).ToList();
Assert.IsTrue( files.Count == 2 );
Assert.IsTrue( files.Contains( "a.txt" ) );
Assert.IsFalse( files.Contains( "b.txt" ) );
Assert.IsTrue( files.Contains( "c.txt" ) );
}
[TestMethod]
public void FindDirectory()
{
var provider = new MockFileIOProvider();
provider.CreateDirectory( "test/testdira" );
provider.CreateDirectory( "test/testdirb" );
provider.CreateDirectory( "test/testdirc" );
var directories = provider.FindDirectory( "/test/" ).ToList();
Assert.IsTrue( directories.Count == 3 );
Assert.IsTrue( directories.Contains( "testdira" ) );
Assert.IsTrue( directories.Contains( "testdirb" ) );
Assert.IsTrue( directories.Contains( "testdirc" ) );
directories = provider.FindDirectory( "" ).ToList();
Assert.IsTrue( directories.Count == 1 );
Assert.IsTrue( directories.Contains( "test" ) );
}
}