public void CanWrite() { using (var container = TemporaryDirectory.CreateNew()) { var sut = new LocalFilesystemStore(container.FullPath, new StubSerialiserProvider()); sut.SetValue("key", 42); } }
public void CanDeleteWrittenValue() { using (var container = TemporaryDirectory.CreateNew()) { var sut = new LocalFilesystemStore(container.FullPath, new StubSerialiserProvider()); sut.SetValue("key", 42); sut.RemoveKey("key"); Assert.That(sut.GetValue <int>("key"), Is.EqualTo(default(int))); } }
public void CanReadWrittenValue() { using (var container = TemporaryDirectory.CreateNew()) { var sut = new LocalFilesystemStore(container.FullPath, new StubSerialiserProvider()); sut.SetValue("key", 42); var value = sut.GetValue <int>("key"); Assert.That(value, Is.EqualTo(42)); } }
public void RecordsFailureLeadingToTimeoutInDiagnosticLog() { using (var container = TemporaryDirectory.CreateNew()) { var clock = new MockClock(DateTimeOffset.Now); var log = Mock.Of <IDiagnosticsLog>(); var serialiserProvider = new FailingActionSerialiserProvider(() => { clock.Advance(TimeSpan.FromSeconds(10)); throw new OutOfMemoryException(); }); var sut = new LocalFilesystemStore(container.FullPath, serialiserProvider, log) { Clock = clock, Timeout = TimeSpan.FromSeconds(5) }; Assume.That(() => sut.SetValue("key", 42), Throws.InstanceOf <TimeoutException>()); Mock.Get(log).Verify(l => l.Info(It.Is <LocalStoreTimeoutEvent>(t => t.Exception.Type.FullName == typeof(OutOfMemoryException).FullName))); } }