Locator is not required.
More tests passing.
This commit is contained in:
parent
e33ceb62f1
commit
b4ce84740a
6 changed files with 149 additions and 54 deletions
|
|
@ -40,6 +40,7 @@ using MatterHackers.MatterControl.PrintQueue;
|
|||
using MatterHackers.MatterControl.DataStorage;
|
||||
using System.IO;
|
||||
using MatterHackers.Agg.PlatformAbstract;
|
||||
using System.Threading;
|
||||
|
||||
namespace MatterControl.Tests
|
||||
{
|
||||
|
|
@ -47,7 +48,8 @@ namespace MatterControl.Tests
|
|||
public class LibraryProviderTests
|
||||
{
|
||||
string pathToMesh = Path.Combine("..", "..", "..", "TestData", "TestMeshes", "LibraryProviderData");
|
||||
string meshFileName;
|
||||
string meshFileName = "Box20x20x10.stl";
|
||||
string meshPathAndFileName;
|
||||
|
||||
bool dataReloaded = false;
|
||||
bool itemAdded = false;
|
||||
|
|
@ -65,7 +67,7 @@ namespace MatterControl.Tests
|
|||
[SetUp]
|
||||
public void SetupBeforeTest()
|
||||
{
|
||||
meshFileName = Path.Combine(pathToMesh, "Box20x20x10.stl");
|
||||
meshPathAndFileName = Path.Combine(pathToMesh, meshFileName);
|
||||
|
||||
dataReloaded = false;
|
||||
itemAdded = false;
|
||||
|
|
@ -85,14 +87,15 @@ namespace MatterControl.Tests
|
|||
[Test, Category("LibraryProviderFileSystem")]
|
||||
public void LibraryProviderFileSystem_NavigationWorking()
|
||||
{
|
||||
Datastore.Instance.Initialize();
|
||||
Thread.Sleep(3000); // wait for the library to finish initializing
|
||||
|
||||
LibraryProviderFileSystem testProvider = new LibraryProviderFileSystem(pathToMesh, "TestPath", null);
|
||||
Assert.IsTrue(testProvider.CollectionCount == 0, "Start with a new database for these tests.");
|
||||
Assert.IsTrue(testProvider.ItemCount == 1, "Start with a new database for these tests.");
|
||||
PrintItemWrapper itemAtRoot = testProvider.GetPrintItemWrapper(0);
|
||||
List<ProviderLocatorNode> providerLocator = itemAtRoot.PrintItem.GetLibraryProviderLocator();
|
||||
Assert.IsTrue(providerLocator.Count == 1);
|
||||
|
||||
// create a collection and make sure it is on disk
|
||||
dataReloaded = false; // it has been loaded for the default set of parts
|
||||
string collectionName = "Collection1";
|
||||
string createdDirectory = Path.Combine(pathToMesh, collectionName);
|
||||
Assert.IsTrue(!Directory.Exists(createdDirectory));
|
||||
|
|
@ -102,42 +105,137 @@ namespace MatterControl.Tests
|
|||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(Directory.Exists(createdDirectory));
|
||||
|
||||
dataReloaded = false;
|
||||
// make sure removing it gets rid of it
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
testProvider.RemoveCollection(testProvider.GetCollectionItem(0));
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(!Directory.Exists(createdDirectory));
|
||||
|
||||
// test GetProviderForItem
|
||||
}
|
||||
|
||||
[Test, Category("LibraryProviderSqlite")]
|
||||
public void LibraryProviderSqlite_NavigationWorking()
|
||||
{
|
||||
LibraryProviderSQLite testProvider = new LibraryProviderSQLite(null, null);
|
||||
Assert.IsTrue(testProvider.CollectionCount == 0, "Start with a new database for these tests.");
|
||||
Assert.IsTrue(testProvider.ItemCount == 1, "Start with a new database for these tests.");
|
||||
PrintItemWrapper itemAtRoot = testProvider.GetPrintItemWrapper(0);
|
||||
List<ProviderLocatorNode> providerLocator = itemAtRoot.PrintItem.GetLibraryProviderLocator();
|
||||
Assert.IsTrue(providerLocator.Count == 1);
|
||||
|
||||
// create a collection and make sure it is on disk
|
||||
string collectionName = "Collection1";
|
||||
//Assert.IsTrue(); // assert that the record does not exist in the DB
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
testProvider.AddCollectionToLibrary(collectionName);
|
||||
Assert.IsTrue(testProvider.CollectionCount == 1);
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
// Assert.IsTrue(); // assert that the record does exist in the DB
|
||||
|
||||
// add an item works correctly
|
||||
LibraryProvider subProvider = testProvider.GetProviderForItem(testProvider.GetCollectionItem(0));
|
||||
dataReloaded = false;
|
||||
itemAdded = false;
|
||||
string subPathAndFile = Path.Combine(createdDirectory, meshFileName);
|
||||
Assert.IsTrue(!File.Exists(subPathAndFile));
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
Assert.IsTrue(itemAdded == false);
|
||||
|
||||
// WIP: saving the name incorectly for this location (does not need to be changed).
|
||||
subProvider.AddFilesToLibrary(new string[] { meshPathAndFileName });
|
||||
Thread.Sleep(3000); // wait for the add to finihs
|
||||
|
||||
Assert.IsTrue(subProvider.ItemCount == 1);
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(itemAdded == true);
|
||||
Assert.IsTrue(File.Exists(subPathAndFile));
|
||||
|
||||
// make sure the provider locator is correct
|
||||
|
||||
// remove item works
|
||||
dataReloaded = false;
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
Assert.IsTrue(itemRemoved == false);
|
||||
subProvider.RemoveItem(subProvider.GetPrintItemWrapper(0));
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(itemRemoved == true);
|
||||
Assert.IsTrue(!File.Exists(subPathAndFile));
|
||||
|
||||
// remove collection gets rid of it
|
||||
dataReloaded = false;
|
||||
// make sure removing it gets rid of it
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
testProvider.RemoveCollection(testProvider.GetCollectionItem(0));
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(testProvider.CollectionCount == 0);
|
||||
//Assert.IsTrue(); // assert that the record does not exist in the DB
|
||||
Assert.IsTrue(!Directory.Exists(createdDirectory));
|
||||
}
|
||||
|
||||
private bool NamedCollectionExists(string nameToLookFor)
|
||||
{
|
||||
string query = string.Format("SELECT * FROM PrintItemCollection WHERE Name = '{0}' ORDER BY Name ASC;", nameToLookFor);
|
||||
IEnumerable<PrintItemCollection> result = (IEnumerable<PrintItemCollection>)Datastore.Instance.dbSQLite.Query<PrintItemCollection>(query);
|
||||
foreach (PrintItemCollection collection in result)
|
||||
{
|
||||
if (collection.Name == nameToLookFor)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool NamedItemExists(string nameToLookFor)
|
||||
{
|
||||
string query = string.Format("SELECT * FROM PrintItem WHERE Name = '{0}' ORDER BY Name ASC;", nameToLookFor);
|
||||
IEnumerable<PrintItem> result = (IEnumerable<PrintItem>)Datastore.Instance.dbSQLite.Query<PrintItem>(query);
|
||||
foreach (PrintItem collection in result)
|
||||
{
|
||||
if (collection.Name == nameToLookFor)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
[Test, Category("LibraryProviderSqlite")]
|
||||
public void LibraryProviderSqlite_NavigationWorking()
|
||||
{
|
||||
Datastore.Instance.Initialize();
|
||||
LibraryProviderSQLite testProvider = new LibraryProviderSQLite(null, null);
|
||||
Thread.Sleep(3000); // wait for the library to finish initializing
|
||||
Assert.IsTrue(testProvider.CollectionCount == 0, "Start with a new database for these tests.");
|
||||
Assert.IsTrue(testProvider.ItemCount == 1, "Start with a new database for these tests.");
|
||||
|
||||
// create a collection and make sure it is on disk
|
||||
dataReloaded = false; // it has been loaded for the default set of parts
|
||||
string collectionName = "Collection1";
|
||||
Assert.IsTrue(!NamedCollectionExists(collectionName)); // assert that the record does not exist in the DB
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
testProvider.AddCollectionToLibrary(collectionName);
|
||||
Assert.IsTrue(testProvider.CollectionCount == 1);
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(NamedCollectionExists(collectionName)); // assert that the record does exist in the DB
|
||||
|
||||
PrintItemWrapper itemAtRoot = testProvider.GetPrintItemWrapper(0);
|
||||
List<ProviderLocatorNode> providerLocator = itemAtRoot.PrintItem.GetLibraryProviderLocator();
|
||||
Assert.IsTrue(providerLocator.Count == 1);
|
||||
|
||||
// add an item works correctly
|
||||
dataReloaded = false;
|
||||
itemAdded = false;
|
||||
Assert.IsTrue(!NamedItemExists(collectionName));
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
Assert.IsTrue(itemAdded == false);
|
||||
|
||||
testProvider.AddFilesToLibrary(new string[] { meshPathAndFileName });
|
||||
Thread.Sleep(3000); // wait for the add to finihs
|
||||
|
||||
Assert.IsTrue(testProvider.ItemCount == 2);
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(itemAdded == true);
|
||||
string fileNameWithExtension = Path.GetFileNameWithoutExtension(meshPathAndFileName);
|
||||
Assert.IsTrue(NamedItemExists(fileNameWithExtension));
|
||||
|
||||
// make sure the provider locator is correct
|
||||
|
||||
// remove item works
|
||||
dataReloaded = false;
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
Assert.IsTrue(itemRemoved == false);
|
||||
testProvider.RemoveItem(testProvider.GetPrintItemWrapper(1));
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(itemRemoved == true);
|
||||
Assert.IsTrue(!NamedItemExists(fileNameWithExtension));
|
||||
|
||||
// remove collection gets rid of it
|
||||
dataReloaded = false;
|
||||
Assert.IsTrue(dataReloaded == false);
|
||||
testProvider.RemoveCollection(testProvider.GetCollectionItem(0));
|
||||
Assert.IsTrue(dataReloaded == true);
|
||||
Assert.IsTrue(testProvider.CollectionCount == 0);
|
||||
Assert.IsTrue(!NamedCollectionExists(collectionName)); // assert that the record does not exist in the DB
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue