public void ExpireJob_AddsEntry_ToExpirationIndex()
        {
            var entry = new BackgroundJobEntry();

            _state.Jobs.TryAdd("myjob", entry);

            Commit(x => x.ExpireJob("myjob", TimeSpan.FromMinutes(30)));

            Assert.Same(entry, _state._jobIndex.First());
        }
        public void PersistJob_RemovesEntry_FromExpirationIndex()
        {
            // Arrange
            var entry = new BackgroundJobEntry {
                ExpireAt = _now
            };

            _state.Jobs.TryAdd("myjob", entry);
            _state._jobIndex.Add(entry);

            // Act
            Commit(x => x.PersistJob("myjob"));

            // Assert
            Assert.Empty(_state._jobIndex);
        }
        public void SetJobState_AddsEntry_ToTheStateIndex()
        {
            // Arrange
            var state = new Mock <IState>();

            state.Setup(x => x.Name).Returns("SomeState");

            var entry = new BackgroundJobEntry();

            _state.Jobs.TryAdd("myjob", entry);

            // Act
            Commit(x => x.SetJobState("myjob", state.Object));

            // Assert
            Assert.Same(entry, _state._jobStateIndex["SomeState"].Single());
        }