Esempio n. 1
0
    public void IntegrationTest()
    {
        var databasePrefix = "OldDatabaseDeleterTests.IntegrationTest-" +
                             Guid.NewGuid().ToString("N").Substring(0, 8);
        UniqueDbConnectionProvider uniqueDbProvider1 = null;
        UniqueDbConnectionProvider uniqueDbProvider2 = null;

        "Given two databases created 7 seconds apart"
        ._(() =>
        {
            uniqueDbProvider1 = new UniqueDbConnectionProvider(new UniqueDbConnectionProviderOptions(
                                                                   TestingConstants.SqlServerInstance, databasePrefix));
            uniqueDbProvider1.CreateDatabase();

            Thread.Sleep(7000);

            uniqueDbProvider2 = new UniqueDbConnectionProvider(new UniqueDbConnectionProviderOptions(
                                                                   TestingConstants.SqlServerInstance, databasePrefix));
            uniqueDbProvider2.CreateDatabase();

            OldDatabaseDeleter.GetOldDatabasesFromUniqueDb(uniqueDbProvider1, TimeSpan.FromSeconds(0))
            .Count.Should()
            .Be(2);
        });


        "When we delete databases older than 7 seconds, we should delete the first of the two"
        ._(() =>
        {
            OldDatabaseDeleter.DeleteOldDatabases(uniqueDbProvider1, TimeSpan.FromSeconds(7));
            OldDatabaseDeleter.GetOldDatabasesFromUniqueDb(uniqueDbProvider2, TimeSpan.FromSeconds(0))
            .Count.Should()
            .Be(1);
        });

        "Now let's delete all the datbases to clean up"
        ._(() =>
        {
            uniqueDbProvider2.AndAutoDeleteDbOlderThan(TimeSpan.FromSeconds(0));
            OldDatabaseDeleter.GetOldDatabasesFromUniqueDb(uniqueDbProvider1, TimeSpan.FromSeconds(0))
            .Count.Should()
            .Be(0);
        });
    }
 public static UniqueDbConnectionProvider AndAutoDeleteDbOlderThan(
     this UniqueDbConnectionProvider uniqueDbConnectionProvider, TimeSpan olderThan)
 {
     OldDatabaseDeleter.DeleteOldDatabases(uniqueDbConnectionProvider, olderThan);
     return(uniqueDbConnectionProvider);
 }
 public static UniqueDbConnectionProvider AndAutoDeleteDbOlderThan5Minutes(
     this UniqueDbConnectionProvider uniqueDbConnectionProvider)
 {
     OldDatabaseDeleter.DeleteOldDatabases(uniqueDbConnectionProvider, TimeSpan.FromMinutes(5));
     return(uniqueDbConnectionProvider);
 }
 public void DeleteOlderDatabases()
 {
     OldDatabaseDeleter.DeleteOldDatabases(_scp, TimeSpan.FromMinutes(3));
 }