public void AddEntityThenDeleteFromDisk() { // Create test entity using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entity = testRepository.Create(); entity.Contents = new EntityTest { Name = "foo", Number = 1 }; testRepository.Add(entity); testRepository.Save(); } // Read the new entity from disk, then delete it and save using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNotNull(entityFromRepo); testRepository.Delete(entityFromRepo); testRepository.Save(); } // After re-initializing the repo, the deleted item should be gone, but everything else should still be present using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNull(entityFromRepo); CollectionAssert.AreEquivalent(new[] { 1, 2, 4 }, testRepository.Entities.Select(x => x.Id).ToArray()); } }
public void AddSameItemMoreThanOnce() { using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entity = testRepository.Create(); testRepository.Add(entity); testRepository.Add(entity); testRepository.Save(); CollectionAssert.AreEquivalent(new[] { 1, 2, 4, 5 }, testRepository.Entities.Select(x => x.Id).ToArray()); } using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { CollectionAssert.AreEquivalent(new[] { 1, 2, 4, 5 }, testRepository.Entities.Select(x => x.Id).ToArray()); } }
public void AddEntityAndRetrieveFromDisk() { // Create test entity and write it to the mock filesystem IJsonEntity <EntityTest> entity; IJsonEntity <EntityTest> entityFromRepo; using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { entity = testRepository.Create(); entity.Contents = new EntityTest { Name = "foo", Number = 1 }; testRepository.Add(entity); testRepository.Save(); } // Now re-create the repo, which should read the persisted value for the new entity from "disk" using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); } Assert.IsNotNull(entityFromRepo); Assert.AreEqual(entity.Id, entityFromRepo.Id); Assert.AreEqual(entity.Contents.Name, entityFromRepo.Contents.Name); Assert.AreEqual(entity.Contents.Number, entityFromRepo.Contents.Number); }
public void DataReadFromRepoIsDisconnectedFromSession() { using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var collection1 = testRepository.Entities.Where(x => new[] { 1, 2 }.Contains(x.Id)).ToArray(); testRepository.Delete(collection1[0]); testRepository.Delete(collection1[1]); var collection2 = testRepository.Entities.Where(x => new[] { 1, 2 }.Contains(x.Id)).ToArray(); CollectionAssert.AreEquivalent(new[] { 1, 2 }, collection1.Select(x => x.Id).ToArray()); CollectionAssert.AreEquivalent(new int[] {}, collection2.Select(x => x.Id).ToArray()); } using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var collection1 = testRepository.Entities.ToArray(); var entity1 = testRepository.Create(); var entity2 = testRepository.Create(); testRepository.Add(entity1); testRepository.Add(entity2); var collection2 = testRepository.Entities.ToArray(); CollectionAssert.AreEquivalent(new[] { 1, 2, 4 }, collection1.Select(x => x.Id).ToArray()); CollectionAssert.AreEquivalent(new[] { 1, 2, 4, 5, 6 }, collection2.Select(x => x.Id).ToArray()); } using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var collection1 = testRepository.Entities.ToArray(); var entity = collection1[0]; string originalName = entity.Contents.Name; int originalNumber = entity.Contents.Number; entity.Contents.Name = "foo"; entity.Contents.Number = -1; testRepository.Update(entity); var collection2 = testRepository.Entities.ToArray(); Assert.AreNotEqual(originalName, collection2[0].Contents.Name); Assert.AreNotEqual(originalNumber, collection2[0].Contents.Number); } }
public void AddEntityThenDeleteFromMemory() { using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { IJsonEntity <EntityTest> entity = testRepository.Create(); entity.Contents = new EntityTest { Name = "foo", Number = 1 }; testRepository.Add(entity); IJsonEntity <EntityTest> entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNotNull(entityFromRepo); testRepository.Delete(entity); entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNull(entityFromRepo); } }
public void AddEntityAndRetrieveFromMemory() { IJsonEntity <EntityTest> entity; IJsonEntity <EntityTest> entityFromRepo; using (var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { entity = testRepository.Create(); entity.Contents = new EntityTest { Name = "foo", Number = 1 }; testRepository.Add(entity); entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); } Assert.IsNotNull(entityFromRepo); Assert.AreEqual(entity.Id, entityFromRepo.Id); Assert.AreEqual(entity.Contents.Name, entityFromRepo.Contents.Name); Assert.AreEqual(entity.Contents.Number, entityFromRepo.Contents.Number); }
public void AddNullEntity() { var testRepository = new DurableMemoryRepository <EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object); testRepository.Add(null); }
public void DataReadFromRepoIsDisconnectedFromSession() { using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var collection1 = testRepository.Entities.Where(x => new[]{1, 2}.Contains(x.Id)).ToArray(); testRepository.Delete(collection1[0]); testRepository.Delete(collection1[1]); var collection2 = testRepository.Entities.Where(x => new[] { 1, 2 }.Contains(x.Id)).ToArray(); CollectionAssert.AreEquivalent(new[] { 1, 2 }, collection1.Select(x => x.Id).ToArray()); CollectionAssert.AreEquivalent(new int[] {}, collection2.Select(x => x.Id).ToArray()); } using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var collection1 = testRepository.Entities.ToArray(); var entity1 = testRepository.Create(); var entity2 = testRepository.Create(); testRepository.Add(entity1); testRepository.Add(entity2); var collection2 = testRepository.Entities.ToArray(); CollectionAssert.AreEquivalent(new[] { 1, 2, 4 }, collection1.Select(x => x.Id).ToArray()); CollectionAssert.AreEquivalent(new[] { 1, 2, 4, 5, 6 }, collection2.Select(x => x.Id).ToArray()); } using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var collection1 = testRepository.Entities.ToArray(); var entity = collection1[0]; string originalName = entity.Contents.Name; int originalNumber = entity.Contents.Number; entity.Contents.Name = "foo"; entity.Contents.Number = -1; testRepository.Update(entity); var collection2 = testRepository.Entities.ToArray(); Assert.AreNotEqual(originalName, collection2[0].Contents.Name); Assert.AreNotEqual(originalNumber, collection2[0].Contents.Number); } }
public void AddNullEntity() { var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object); testRepository.Add(null); }
public void AddAndDeleteTheSameItemMultipleTimesInASession() { using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entity = testRepository.Create(); testRepository.Add(entity); testRepository.Delete(entity); testRepository.Add(entity); testRepository.Delete(entity); testRepository.Add(entity); testRepository.Delete(entity); testRepository.Add(entity); testRepository.Add(entity); testRepository.Delete(entity); testRepository.Delete(entity); testRepository.Save(); CollectionAssert.AreEquivalent(new[] { 1, 2, 4 }, testRepository.Entities.Select(x => x.Id).ToArray()); } using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { CollectionAssert.AreEquivalent(new[] { 1, 2, 4 }, testRepository.Entities.Select(x => x.Id).ToArray()); } }
public void AddEntityThenDeleteFromDisk() { // Create test entity using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entity = testRepository.Create(); entity.Contents = new EntityTest { Name = "foo", Number = 1 }; testRepository.Add(entity); testRepository.Save(); } // Read the new entity from disk, then delete it and save using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNotNull(entityFromRepo); testRepository.Delete(entityFromRepo); testRepository.Save(); } // After re-initializing the repo, the deleted item should be gone, but everything else should still be present using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { var entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNull(entityFromRepo); CollectionAssert.AreEquivalent(new[] { 1, 2, 4 }, testRepository.Entities.Select(x => x.Id).ToArray()); } }
public void AddEntityThenDeleteFromMemory() { using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { IJsonEntity<EntityTest> entity = testRepository.Create(); entity.Contents = new EntityTest { Name = "foo", Number = 1 }; testRepository.Add(entity); IJsonEntity<EntityTest> entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNotNull(entityFromRepo); testRepository.Delete(entity); entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); Assert.IsNull(entityFromRepo); } }
public void AddEntityAndRetrieveFromDisk() { // Create test entity and write it to the mock filesystem IJsonEntity<EntityTest> entity; IJsonEntity<EntityTest> entityFromRepo; using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { entity = testRepository.Create(); entity.Contents = new EntityTest {Name = "foo", Number = 1}; testRepository.Add(entity); testRepository.Save(); } // Now re-create the repo, which should read the persisted value for the new entity from "disk" using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); } Assert.IsNotNull(entityFromRepo); Assert.AreEqual(entity.Id, entityFromRepo.Id); Assert.AreEqual(entity.Contents.Name, entityFromRepo.Contents.Name); Assert.AreEqual(entity.Contents.Number, entityFromRepo.Contents.Number); }
public void AddEntityAndRetrieveFromMemory() { IJsonEntity<EntityTest> entity; IJsonEntity<EntityTest> entityFromRepo; using (var testRepository = new DurableMemoryRepository<EntityTest>(MockDataPath, _mockProvider.MockFileSystem.Object)) { entity = testRepository.Create(); entity.Contents = new EntityTest {Name = "foo", Number = 1}; testRepository.Add(entity); entityFromRepo = testRepository.Entities.FirstOrDefault(x => x.Contents.Name == "foo"); } Assert.IsNotNull(entityFromRepo); Assert.AreEqual(entity.Id, entityFromRepo.Id); Assert.AreEqual(entity.Contents.Name, entityFromRepo.Contents.Name); Assert.AreEqual(entity.Contents.Number, entityFromRepo.Contents.Number); }