public void Given_NoDbs_ReturnsZero()
        {
            var backupTimes = new DateTime?[] {};

            SetupDatabasesBackupTimes(backupTimes);

            var result =
                DatabaseOldestBackup.GetTimeSinceOldestBackupInternal(_backupDates.Keys.ToList(), GetLastBackupDate, _time);

            Assert.Equal(TimeSpan.Zero, result);
            Assert.Equal(SnmpValuesHelper.TimeTicksZero, SnmpValuesHelper.TimeSpanToTimeTicks(result));
        }
        public void GivenDatabaseBackedUp_MoreThanMaxTimeTicksAgo_ReturnsTimespanMax()
        {
            var maxTimeTicksTimespan = SnmpValuesHelper.TimeTicksMax.ToTimeSpan();
            var backupTimes          = new DateTime?[]
            {
                _time.GetUtcNow().Subtract(maxTimeTicksTimespan).Subtract(TimeSpan.FromDays(1))
            };

            SetupDatabasesBackupTimes(backupTimes);

            var result =
                DatabaseOldestBackup.GetTimeSinceOldestBackupInternal(_backupDates.Keys.ToList(), GetLastBackupDate, _time);

            Assert.True(result > SnmpValuesHelper.TimeSpanSnmpMax);
            Assert.Equal(SnmpValuesHelper.TimeTicksMax, SnmpValuesHelper.TimeSpanToTimeTicks(result));
        }
        public void GivenAFewDatabases_ShouldProvideDurationSinceTheOldestDatabaseBackup()
        {
            var backupTimes = new DateTime?[]
            {
                _time.GetUtcNow().Date,
                _time.GetUtcNow().Subtract(TimeSpan.FromDays(1)),
                _time.GetUtcNow(),
                null
            };

            SetupDatabasesBackupTimes(backupTimes);

            var result =
                DatabaseOldestBackup.GetTimeSinceOldestBackupInternal(_backupDates.Keys.ToList(), GetLastBackupDate, _time);

            Assert.Equal(_time.GetUtcNow() - backupTimes[1], result);
        }