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.");

            // 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));
            Assert.IsTrue(dataReloaded == false);
            testProvider.AddCollectionToLibrary(collectionName);
            Assert.IsTrue(testProvider.CollectionCount == 1);
            Assert.IsTrue(dataReloaded == true);
            Assert.IsTrue(Directory.Exists(createdDirectory));

            PrintItemWrapper           itemAtRoot      = testProvider.GetPrintItemWrapper(0);
            List <ProviderLocatorNode> providerLocator = itemAtRoot.PrintItem.GetLibraryProviderLocator();

            Assert.IsTrue(providerLocator.Count == 1);

            // 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);
            subProvider.RemoveItem(subProvider.GetPrintItemWrapper(0));
            Assert.IsTrue(dataReloaded == true);
            Assert.IsTrue(!File.Exists(subPathAndFile));

            // 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(!Directory.Exists(createdDirectory));
        }