public async Task <bool> UnindexWhenIndexHasOnlyTheKeyAndOnlyTheIdTheIndexIsDeleted() { MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object> { Keys = new List <IndexKey <object> > { new IndexKey <object> { Value = IndexData.IndexValue1, Ids = new List <int> { IndexData.Id } } } }); MockFileStreamer .Setup(x => x.Delete("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(true); var result = await FileIndexWorker.Unindex(IndexData); MockFileStreamer .Verify(x => x.CloseStream("Data\\IndexableData\\IndexValue1.index"), Times.Never); MockFileStreamer .Verify(x => x.Delete("Data\\IndexableData\\IndexValue1.index"), Times.Once); return(result); }
public async Task <bool> IndexExistWhenItDoesNot() { MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(false); return(await FileIndexWorker.IndexExist <IndexableData>("IndexValue1")); }
public async Task <bool> UnindexWhenIndexHasKeysButNotTheId() { MockFileStreamer .Setup(x => x.Exists("IndexableData\\IndexValue1.index")) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object> { Keys = new List <IndexKey <object> > { new IndexKey <object> { Value = IndexData.IndexValue1, Ids = new List <int> { Randomizer.Next() } } } }); var result = await FileIndexWorker.Unindex(IndexData); MockFileStreamer .Verify(x => x.WriteDataToStream(It.IsAny <string>(), It.IsAny <Index <object> >()), Times.Never); return(result); }
public async Task <bool> UnindexWhenIndexHasKeyAndIdAndSaveSuccess() { MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object> { Keys = new List <IndexKey <object> > { new IndexKey <object> { Value = IndexData.IndexValue1, Ids = new List <int> { Randomizer.Next(), IndexData.Id } } } }); MockFileStreamer .Setup(x => x.WriteDataToStream("Data\\IndexableData\\IndexValue1.index", It.Is <Index <object> >(y => y.Keys.Count() == 1))) .ReturnsAsync(true); var result = await FileIndexWorker.Unindex(IndexData); MockFileStreamer .Verify(x => x.CloseStream("Data\\IndexableData\\IndexValue1.index"), Times.Once); return(result); }
public async Task <bool> IndexWhenIndexDoesExistAndTheKeyIsUniqueAndAlreadyUsed() { MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("Data\\UniqueIndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object> { Keys = new List <IndexKey <object> > { new IndexKey <object> { Value = IndexKey, Ids = new List <int>() { Randomizer.Next() } } } }); UniqueIndexData.IndexValue1 = IndexKey; var result = await FileIndexWorker.Index(UniqueIndexData); MockFileStreamer .Verify(x => x.WriteDataToStream( It.IsAny <string>(), It.IsAny <Index <object> >() ), Times.Never); return(result); }
public async Task GetKeysFromIndexWhenReadDataFromStreamReturnsAnIndexWithTheKeyAndIds() { var data = FileIndexWorker.GetKeysFromIndex <IndexableData, string>("IndexValue1"); var result = new List <IndexKey <string> >(); await foreach (var d in data) { result.Add(d); } Assert.AreEqual(1, result.Count(x => x.Value == IndexKey)); }
public async Task <bool> UnindexWhenIndexDoesNotExist() { MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(false); var result = await FileIndexWorker.Unindex(IndexData); MockFileStreamer .Verify(x => x.ReadDataFromStream <Index <object> >(It.IsAny <string>()), Times.Never); return(result); }
public async Task <bool> IndexWhenIndexDoesExistAndTheKeyIsUniqueAndAlreadySet() { UniqueIndexData.IndexValue1 = IndexKey; var result = await FileIndexWorker.Index(UniqueIndexData); MockFileStreamer .Verify(x => x.WriteDataToStream( It.IsAny <string>(), It.IsAny <Index <object> >() ), Times.Never); return(result); }
public async Task <bool> UnindexWhenIndexIsEmpty() { MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object>()); var result = await FileIndexWorker.Unindex(IndexData); MockFileStreamer .Verify(x => x.WriteDataToStream(It.IsAny <string>(), It.IsAny <Index <object> >()), Times.Never); return(result); }
public async Task GetKeysFromIndexWhenReadDataFromStreamReturnsAnEmptyIndex() { MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <string> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <string>()); var data = FileIndexWorker.GetKeysFromIndex <IndexableData, string>("IndexValue1"); var result = new List <IndexKey <string> >(); await foreach (var d in data) { result.Add(d); } Assert.IsEmpty(result); }
public async Task <bool> IndexWhenIndexDoesExistAndTheKeyHasTheIdAlready() { IndexData.IndexValue1 = IndexKey; ExpectedIds.Add(IndexData.Id); var result = await FileIndexWorker.Index(IndexData); MockFileStreamer .Verify(x => x.WriteDataToStream( "IndexableData\\IndexValue1.index", It.IsAny <Index <object> >() ), Times.Never); return(result); }
public async Task GetIdsFromIndexWhenReadDataFromStreamReturnsAnIndexWithTheKeyAndIds() { var data = FileIndexWorker.GetIdsFromIndex <IndexableData, string>("IndexValue1", IndexKey); var result = new List <int>(); await foreach (var d in data) { result.Add(d); } Assert.AreEqual(ExpectedIds.Count(), result.Count()); for (var i = 0; i < ExpectedIds.Count(); i++) { Assert.IsTrue(result.Contains(ExpectedIds[i])); } }
public async Task <bool> IndexWhenWriteDataToStreamFails() { MockFileStreamer .Setup(x => x.WriteDataToStream(It.IsAny <string>(), It.IsAny <Index <object> >())) .ReturnsAsync(false); var result = await FileIndexWorker.Index(IndexData); MockFileStreamer .Verify(x => x.WriteDataToStream( "Data\\IndexableData\\IndexValue1.index", It.IsAny <Index <object> >() ), Times.Once); return(result); }
public async Task <bool> IndexWhenIndexDoesNotExist() { MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(false); var result = await FileIndexWorker.Index(IndexData); MockFileStreamer .Verify(x => x.WriteDataToStream("Data\\IndexableData\\IndexValue1.index", It.Is <Index <object> >(y => y.Keys.Count() == 1 && y.Keys.ElementAt(0).Value.Equals(IndexData.IndexValue1) && y.Keys.ElementAt(0).Ids.Count() == 1 && y.Keys.ElementAt(0).Ids.ElementAt(0) == IndexData.Id)), Times.Once); return(result); }
public async Task <bool> IndexWhenIndexDoesExistButTheKeyDoesNot() { var result = await FileIndexWorker.Index(IndexData); MockFileStreamer .Verify(x => x.WriteDataToStream( "Data\\IndexableData\\IndexValue1.index", It.Is <Index <object> >(y => y.Keys.Count() == 2 && y.Keys.ElementAt(0).Value.Equals(IndexKey) && y.Keys.ElementAt(1).Value.Equals(IndexData.IndexValue1) && y.Keys.ElementAt(0).Ids.Equals(ExpectedIds) && y.Keys.ElementAt(1).Ids.Count() == 1 && y.Keys.ElementAt(1).Ids.ElementAt(0) == IndexData.Id ) ), Times.Once); return(result); }
public async Task GetIdsFromIndexWhenReadDataFromStreamReturnsAnIndexWithOutTheKey() { MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <string> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <string> { Keys = new List <IndexKey <string> > { new IndexKey <string> { Value = Randomizer.GetString() } } }); var data = FileIndexWorker.GetIdsFromIndex <IndexableData, string>("IndexValue1", "Unit test"); var result = new List <int>(); await foreach (var d in data) { result.Add(d); } Assert.IsEmpty(result); }
public void Setup() { Randomizer = Randomizer.CreateRandomizer(); IndexKey = Randomizer.GetString(); ExpectedIds = new List <int> { Randomizer.Next(), Randomizer.Next(), Randomizer.Next() }; IndexData = new IndexableData { Id = Randomizer.Next(), IndexValue1 = Randomizer.GetString() }; UniqueIndexData = new UniqueIndexableData() { Id = Randomizer.Next(), IndexValue1 = Randomizer.GetString() }; MockFileStreamer = new Mock <IFileStreamer>(); MockFileStreamer .Setup(x => x.Exists("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.Exists("Data\\UniqueIndexableData\\IndexValue1.index")) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <string> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <string> { Keys = new List <IndexKey <string> > { new IndexKey <string> { Value = IndexKey, Ids = ExpectedIds } } }); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object> { Keys = new List <IndexKey <object> > { new IndexKey <object> { Value = IndexKey, Ids = ExpectedIds } } }); MockFileStreamer .Setup(x => x.ReadDataFromStream <Index <object> >("Data\\UniqueIndexableData\\IndexValue1.index")) .ReturnsAsync(new Index <object> { Keys = new List <IndexKey <object> > { new IndexKey <object> { Value = IndexKey, Ids = new List <int>() { UniqueIndexData.Id } } } }); MockFileStreamer .Setup(x => x.WriteDataToStream( "Data\\IndexableData\\IndexValue1.index", It.Is <Index <object> >(y => y.Keys.Count() == 2 && y.Keys.ElementAt(0).Value.Equals(IndexKey) && y.Keys.ElementAt(1).Value.Equals(IndexData.IndexValue1) && y.Keys.ElementAt(0).Ids.Count() == 3 && y.Keys.ElementAt(1).Ids.Count() == 1 && y.Keys.ElementAt(1).Ids.ElementAt(0) == IndexData.Id ) )) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.WriteDataToStream("Data\\IndexableData\\IndexValue1.index", It.Is <Index <object> >(y => y.Keys.Count() == 1 && y.Keys.ElementAt(0).Value.Equals(IndexData.IndexValue1) && y.Keys.ElementAt(0).Ids.Count() == 1 && y.Keys.ElementAt(0).Ids.ElementAt(0) == IndexData.Id))) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.WriteDataToStream( "Data\\IndexableData\\IndexValue1.index", It.Is <Index <object> >(y => y.Keys.Count() == 1 && y.Keys.ElementAt(0).Value.Equals(IndexKey) && y.Keys.ElementAt(0).Ids.Count() == 4 && y.Keys.ElementAt(0).Ids.ElementAt(0) == ExpectedIds.ElementAt(0) && y.Keys.ElementAt(0).Ids.ElementAt(1) == ExpectedIds.ElementAt(1) && y.Keys.ElementAt(0).Ids.ElementAt(2) == ExpectedIds.ElementAt(2) && y.Keys.ElementAt(0).Ids.ElementAt(3) == IndexData.Id ) )) .ReturnsAsync(true); MockFileStreamer .Setup(x => x.CloseStream("Data\\IndexableData\\IndexValue1.index")) .ReturnsAsync(true); FileIndexWorker = new FileIndexWorker(MockFileStreamer.Object); }
public async Task <bool> UnindexDataTypeWithNoIndexedProperties() { return(await FileIndexWorker.Unindex(new BasicData())); }
public async Task <bool> IndexExistWhenItDoes() { return(await FileIndexWorker.IndexExist <IndexableData>("IndexValue1")); }