public void TryDeserializeFromNotExistsDirectory() { var fileSystem = new MockFileSystem(); var serializer = new BinarySearchTreePersistable <int, int>(fileSystem); Assert.Throws <DirectoryNotFoundException>(() => serializer.Deserialize("binary_search_tree.dat")); }
public void TrySerializeAndDeserializeSuccess() { var fileSystem = new MockFileSystem(); fileSystem.Directory.CreateDirectory(Directory.GetCurrentDirectory()); string path = Path.Combine(Directory.GetCurrentDirectory(), "binary_search_tree.dat"); var serializer = new BinarySearchTreePersistable <int, int>(fileSystem); serializer.Serialize(path, tree); Assert.True(fileSystem.FileExists(path)); var treeDeserialized = (BinarySearchTree <int, int>)serializer.Deserialize(path); Assert.True(treeDeserialized.ContainsKey(1) && treeDeserialized.ContainsKey(3) && treeDeserialized.Count == 9); var expected = new List <int>() { 8, 3, 1, 6, 4, 7, 10, 14, 13 }; var actual = new List <int>(); var enumerator = treeDeserialized.GetEnumerator(); while (enumerator.MoveNext()) { actual.Add(enumerator.Current.Key); } Assert.Equal(expected, actual); }
public void TryDeserializeFromNotExistsFile() { var fileSystem = new MockFileSystem(); fileSystem.Directory.CreateDirectory(Directory.GetCurrentDirectory()); string pathNotExists = Path.Combine(Directory.GetCurrentDirectory(), "file_not_exists.dat"); var serializer = new BinarySearchTreePersistable <int, int>(fileSystem); Assert.Throws <FileNotFoundException>(() => serializer.Deserialize(pathNotExists)); }
public void TrySerializeAndDeserializeEmptyTree() { var fileSystem = new MockFileSystem(); fileSystem.Directory.CreateDirectory(Directory.GetCurrentDirectory()); string path = Path.Combine(Directory.GetCurrentDirectory(), "binary_search_tree.dat"); var serializer = new BinarySearchTreePersistable <int, int>(fileSystem); serializer.Serialize(path, new BinarySearchTree <int, int>()); Assert.True(fileSystem.FileExists(path)); var treeDeserialized = (BinarySearchTree <int, int>)serializer.Deserialize(path); Assert.True(treeDeserialized.Count == 0); }