public void WhenBrokerIsNotRunningExceptionIsThrown() { using (var context = CreateContext()) using (var invalidator = new SqlDependencyInvalidator()) { context.SqlConnection.Open(); var disableCommand = new SqlCommand(@"ALTER DATABASE [" + TestDatabase.Name + "] SET DISABLE_BROKER WITH ROLLBACK IMMEDIATE", context.SqlConnection); disableCommand.ExecuteNonQuery(); var exceptionWasThrown = false; try { Assert.AreEqual(0, context.GetTable1().AsCached(invalidator).Count()); } catch (LinqCacheException exception) { exceptionWasThrown = true; Assert.AreEqual("The SQL Server Service Broker for the current database is not enabled.", exception.Message); } Assert.IsTrue(exceptionWasThrown); var enableCommand = new SqlCommand(@"ALTER DATABASE [" + TestDatabase.Name + "] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE", context.SqlConnection); enableCommand.ExecuteNonQuery(); } }
public void WhenUnderlyingDataIsChangedCacheIsRefreshed() { using (var context = CreateContext()) using (var invalidator = new SqlDependencyInvalidator()) { Assert.AreEqual(0, context.GetTable1().AsCached(invalidator).ToList().Count); context.AddIntoTable1(1, "Data"); context.SaveChanges(); invalidator.OnChangeReceived.WaitOne(); Assert.AreEqual(1, context.GetTable1().AsCached(invalidator).ToList().Count); } }
public void WhenUnsupportedQueryIsExecutedUnsupportedQueryEventIsFired() { using (var context = CreateContext()) using (var invalidator = new SqlDependencyInvalidator()) { bool unsupportedQueryFired = false; invalidator.UnsupportedQuery += (sender, queryable) => { unsupportedQueryFired = true; }; context.GetTable1().GroupBy(row => row).Select(group => group).AsCached(invalidator).ToList(); invalidator.OnChangeReceived.WaitOne(); Assert.IsTrue(unsupportedQueryFired); } }