Example #1
0
        public void Reseed_TableWithNewSeed()
        {
            //arrange
            var expected = "DBCC CHECKIDENT('dbo.Table', RESEED, 1)";

            //act
            var query = Dbcc.Reseed("dbo.Table", 1);

            //assert
            query.Should().Be(expected);
        }
Example #2
0
        internal async Task <DbccGap> CreateDbccGap(Database database, Dbcc dbcc)
        {
            var lastDbcc = database.LastDbccDate;

            // If there isn't a last dbcc then we'll record the current dbcc as the last _if_ it's not the default dbcc date of '1900-01-01 00:00:00.000'
            if (!lastDbcc.HasValue && dbcc.End > new DateTime(1901, 1, 1))
            {
                database.LastDbccDate = dbcc.End;
                await this.databaseRepository.UpdateAsync(database);
            }
            else if (lastDbcc.HasValue && (dbcc.End - lastDbcc.Value).TotalMilliseconds > 10)             // checking if the current doesn't equal the last with a little buffer
            {
                database.LastDbccDate = dbcc.End;
                await this.databaseRepository.UpdateAsync(database);

                return(new DbccGap {
                    DatabaseId = dbcc.DatabaseId, Start = lastDbcc.Value, End = dbcc.End
                });
            }

            return(null);
        }
        public async Task ServerDbccProcessor_CreateDbccGap(int dbccEnd, int?lastDbccEnd, bool expectedResultNotNull, bool expectedResultUpdateLast)
        {
            // Arrange
            var dbcc = new Dbcc {
                DatabaseId = 123, End = DateTime.UtcNow.AddDays(dbccEnd)
            };
            var lastDbcc = lastDbccEnd.HasValue ? DateTime.UtcNow.AddDays(lastDbccEnd.Value) : (DateTime?)null;
            var database = new Database {
                Id = 2, LastDbccDate = lastDbcc
            };

            this.databaseRepository.Setup(r => r.UpdateAsync(database))
            .ReturnsAsyncDefault();

            // Act
            var result = await this.serverDbccProcessor.CreateDbccGap(database, dbcc);

            // Assert
            Assert.That(result, expectedResultNotNull ? Is.Not.Null : Is.Null);
            this.databaseRepository.Verify(
                r => r.UpdateAsync(database),
                expectedResultUpdateLast ? Times.Once() : Times.Never());
        }