public void MemoryKeyValueDataStore_WithDefaultConstructor_ShouldInitializeObjectCorrectly() { // Act + Assert var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); Assert.IsNotNull(db); }
public void MemoryKeyValueDataStore_AddUpdateGetRemoveOfOneKey_ShouldWork() { // Arrange var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); var key = new KeyModel { Id = DateTime.Now.Millisecond }; var value1 = new ValueModel { Id = 234234 + DateTime.Now.Millisecond, Content = Guid.NewGuid().ToString() }; var value2 = new ValueModel { Id = 5354 + DateTime.Now.Millisecond, Content = Guid.NewGuid().ToString() }; // Act: AddOrUpdate var addResult = db.AddOrUpdate(key, k => value1, (k, v) => value1); // Assert: AddOrUpdate Assert.AreSame(value1, addResult, "Returned after addition value should be same as the added."); // Act: AddOrUpdate var updateResult = db.AddOrUpdate(key, k => value2, (k, v) => value2); // Assert: AddOrUpdate Assert.AreSame(value2, updateResult, "Returned after update value should be same as the updated."); // Act: Keys var keysAfterAdd = db.Keys.ToList(); // Assert: Keys Assert.IsTrue(keysAfterAdd.Contains(key), "Added key should be present in the Keys list."); // Act: Get var valueFromDb = db[key]; // Assert: Get Assert.AreSame(value2, valueFromDb, "Indexer should return the added object."); // Act: Remove var removeResult = db.Remove(key); // Assert: Remove Assert.IsTrue(removeResult, "Key should be removed."); // Act: Keys var keysAfterRemove = db.Keys.ToList(); // Assert: Keys Assert.IsFalse(keysAfterRemove.Contains(key), "Removed key should not be present in the Keys list."); }
public void MemoryKeyValueDataStore_InvocationOfKeys_ShouldNotThrow() { // Arrange var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act var keys = db.Keys; // Assert Assert.IsNotNull(keys); }
public void MemoryKeyValueDataStore_AddOrUpdateAllNullParameters_ShouldThrowArgumentNullException() { // Arrange var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act + Assert Assert.Throws <ArgumentNullException>(() => { db.AddOrUpdate(null, null, null); }); }
public void MemoryKeyValueDataStore_AddOrUpdateWithNullKeyAndNullAddValueFactory_ShouldThrowArgumentNullException() { // Arrange var valueMock = new Mock <IValueModel>(); var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act + Assert Assert.Throws <ArgumentNullException>(() => { db.AddOrUpdate(null, null, (k, v) => valueMock.Object); }); }
public void MemoryKeyValueDataStore_RemoveWithNullKey_ShouldThrowArgumentNullExceptionWithCorrectParamName() { // Arrange var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act + Assert var exception = Assert.Throws <ArgumentNullException>(() => { db.Remove(null); }); Assert.AreEqual(Constants.KeyParamName, exception.ParamName); }
public void MemoryKeyValueDataStore_AddOrUpdateWithNullKey_ShouldThrowArgumentNullExceptionWithCorrectParamName() { // Arrange var valueMock = new Mock <IValueModel>(); var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act + Assert var exception = Assert.Throws <ArgumentNullException>(() => { db.AddOrUpdate(null, k => valueMock.Object, (k, v) => valueMock.Object); }); Assert.AreEqual(Constants.KeyParamName, exception.ParamName); }
public void MemoryKeyValueDataStore_AddOrUpdateWithNullAddValueFactoryAndNullUpdateValueFactory_ShouldThrowArgumentNullException() { // Arrange var keyMock = new Mock <IKeyModel>(); keyMock .SetupGet(k => k.Id) .Returns(1); var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act + Assert Assert.Throws <ArgumentNullException>(() => { db.AddOrUpdate(keyMock.Object, null, null); }); }
public void MemoryKeyValueDataStore_AddOrUpdateWithNullUpdateValueFactory_ShouldThrowArgumentNullExceptionWithCorrectParamName() { // Arrange var keyMock = new Mock <IKeyModel>(); keyMock .SetupGet(k => k.Id) .Returns(1); var valueMock = new Mock <IValueModel>(); var db = new MemoryKeyValueDataStore <IKeyModel, IValueModel>(); // Act + Assert var exception = Assert.Throws <ArgumentNullException>(() => { db.AddOrUpdate(keyMock.Object, k => valueMock.Object, null); }); Assert.AreEqual(Constants.UpdateValueFactoryParamName, exception.ParamName); }