public void TestCustomDatabaseName() { //you can also create a new database per test (it's not very fast) //here we customise the database name and put the file in %TEMP% var options = new TestDatabaseOptions("ProductContext") { DatabaseName = "Test", DatabaseFilePath = Path.Combine(Path.GetTempPath(), "Test"), //DataSource = @".\SqlExpress", //if this is installed }; var td = new CreateTestDatabase.TestDatabase(options); td.CreateDatabase(); td.InitConnectionString(); //if you've already done this with AssemblyInitialize, EF has been initialized and the connection string is different //NB: this isn't the connection string in app.config var connectionString = ConfigurationManager.ConnectionStrings["ProductContext"].ConnectionString; using (var con = new SqlConnection(connectionString)) { Assert.AreEqual("(LocalDB)\\MSSQLLocalDB", con.DataSource); Assert.AreEqual("Test", con.Database); } }
/// <summary> /// Initializes a new instance of the <see cref="TestDatabase" /> class with a database in a specified folder. /// </summary> /// <param name="testDatabaseOptions">The test database options.</param> /// <exception cref="System.ArgumentNullException">databaseName</exception> public TestDatabase(TestDatabaseOptions testDatabaseOptions) { if (testDatabaseOptions == null) { throw new ArgumentNullException("testDatabaseOptions"); } _testDatabaseOptions = testDatabaseOptions; }
/// <summary> /// Initializes a new instance of the <see cref="TestDatabase" /> class with a database in a specified folder. /// </summary> /// <param name="testDatabaseOptions">The test database options.</param> /// <exception cref="System.ArgumentNullException">databaseName</exception> public TestDatabase(TestDatabaseOptions testDatabaseOptions) { if (testDatabaseOptions == null) throw new ArgumentNullException("testDatabaseOptions"); _testDatabaseOptions = testDatabaseOptions; }