public void CanCreateStorageTableAutomatically()
        {
            // arrange

            // act
            storage.EnsureTableIsCreated();

            // assert
            var tableNames = GetTableNames();

            tableNames.ShouldContain(TimeoutsTableName);
        }
Example #2
0
        public void ExertsRowLevelLockingBecauseItCan()
        {
            storage.EnsureTableIsCreated();

            var now = DateTime.UtcNow;

            var t1 = now;
            var t2 = now.AddDays(1);

            storage.Add(new Rebus.Timeout.Timeout("bimse", "1", t1, Guid.Empty, "hej"));
            storage.Add(new Rebus.Timeout.Timeout("bimse", "2", t2, Guid.Empty, "hej"));

            TimeMachine.FixTo(t1.AddMinutes(-10));

            using (var resultBefore = storage.GetDueTimeouts())
            {
                var timeoutsBefore = resultBefore.DueTimeouts.ToList();

                TimeMachine.FixTo(t1.AddMinutes(10));

                using (var resultsAfterT1 = storage.GetDueTimeouts())
                {
                    var timeoutsAfterT1 = resultsAfterT1.DueTimeouts.ToList();

                    TimeMachine.FixTo(t2.AddMinutes(10));

                    using (var resultsAfterT2 = storage.GetDueTimeouts())
                    {
                        var timeoutsAfterT2 = resultsAfterT2.DueTimeouts.ToList();

                        Assert.That(timeoutsBefore.Count, Is.EqualTo(0));
                        Assert.That(timeoutsAfterT1.Count, Is.EqualTo(1));
                        Assert.That(timeoutsAfterT2.Count, Is.EqualTo(1));
                    }
                }
            }
        }
Example #3
0
 /// <summary>
 /// Checks to see if a table exists with the configured name - if that is not the case, it will be created.
 /// If a table already exists, nothing happens.
 /// </summary>
 public void EnsureTableIsCreated()
 {
     sqlServerTimeoutStorage.EnsureTableIsCreated();
 }