public void WillNotShowValueFromLaterSnapshot()
		{
			var storageState = new StorageState("test", new StorageOptions());
			using (var memtable = new MemTable(storageState))
			{
				memtable.Add(2, ItemType.Value, "test", memtable.Write(new MemoryStream(new byte[] { 1, 2, 3 })));
				Stream stream;
				Assert.False(memtable.TryGet("test", 1, out stream));
			}
		}
		public void DeletesWillHideValues()
		{
			var storageState = new StorageState("test", new StorageOptions());
			using (var memtable = new MemTable(storageState))
			{
				memtable.Add(2, ItemType.Value, "test", memtable.Write(new MemoryStream(new byte[] { 1, 2, 3 })));
				memtable.Add(3, ItemType.Deletion, "test", null);

				Stream stream;
				Assert.True(memtable.TryGet("test", 5, out stream));
				Assert.Null(stream);
			}
		}
		public void CanAddAndGetUsingLaterSnapshot()
		{
			var storageState = new StorageState("test", new StorageOptions());
			using (var memtable = new MemTable(storageState))
			{
				memtable.Add(1, ItemType.Value, "test", memtable.Write(new MemoryStream(new byte[] { 1, 2, 3 })));
				Stream stream;
				Assert.True(memtable.TryGet("test", 2, out stream));
				using (stream)
				{
					Assert.Equal(1, stream.ReadByte());
					Assert.Equal(2, stream.ReadByte());
					Assert.Equal(3, stream.ReadByte());
				}

			}
		}
Ejemplo n.º 4
0
		internal void Prepare(MemTable memTable)
		{
			foreach (var operation in _operations)
			{
				operation.Handle = memTable.Write(operation.Value);
				if (DontDisposeStreamsAfterWrite)
					continue;
				operation.Value.Dispose();
			}
		}