public void Getter_ResultIsReturned() { var krw = new KeyedReaderWriter<object, object>(k => 42, (k, v) => false, null); var result = krw.Get(null); Assert.IsTrue(42 == (int)result); }
public void Setter_IsCalled() { bool executed = false; var krw = new KeyedReaderWriter<object, object>(k => null, (k, v) => { executed = true; return false; }, null); krw.Set(null, null); Assert.IsTrue(executed); }
public void Setter_ValueIsUsed() { object result = null; var krw = new KeyedReaderWriter<object, object>(k => null, (k, v) => { result = v; return true; }, null); krw.Set(null, 42); Assert.IsTrue(42 == (int)result); }
public void Setter_ResultIsReturned() { bool returnValue = false; var krw = new KeyedReaderWriter<object, object>(k => null, (k, v) => returnValue, null); Assert.IsFalse(krw.Set(null, null)); returnValue = true; Assert.IsTrue(krw.Set(null, null)); }
public void FromKeyedReaderWriter_UsesReaderWriter() { int result = 0; var krw = new KeyedReaderWriter<int, int>(x => x * 2, (i, v) => { result = i * v; return true; }, null); var indexer = Indexer.FromKeyedReaderWriter(krw); Assert.AreEqual(2, indexer[1]); Assert.AreEqual(4, indexer[2]); Assert.AreEqual(6, indexer[3]); indexer[2] = 4; Assert.AreEqual(8, result); indexer[3] = 3; Assert.AreEqual(9, result); }
public void FromKeyedReaderWriter_UsesKnownIndexes() { var krw = new KeyedReaderWriter<int, int>(x => x, (i, v) => true, () => new[]{1,2,3,4,5}); var indexer = Indexer.FromKeyedReaderWriter(krw); Assert.IsTrue(indexer.SequenceEqual(new[] { 1, 2, 3, 4, 5 })); }