示例#1
0
 public void CanWrite()
 {
     using (var container = TemporaryDirectory.CreateNew())
     {
         var sut = new LocalFilesystemStore(container.FullPath, new StubSerialiserProvider());
         sut.SetValue("key", 42);
     }
 }
示例#2
0
        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)));
            }
        }
示例#3
0
        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));
            }
        }
示例#4
0
        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)));
            }
        }