public async Task TestSelectSimpleTriggerWithDeleteBeforeSelectExtendedProps() { var dbProvider = A.Fake <IDbProvider>(); var connection = A.Fake <DbConnection>(); var transaction = A.Fake <DbTransaction>(); var command = (DbCommand)A.Fake <StubCommand>(); var dbMetadata = new DbMetadata(); A.CallTo(() => dbProvider.Metadata).Returns(dbMetadata); A.CallTo(() => dbProvider.CreateCommand()).Returns(command); var dataReader = A.Fake <DbDataReader>(); A.CallTo(command).Where(x => x.Method.Name == "ExecuteDbDataReaderAsync") .WithReturnType <Task <DbDataReader> >() .Returns(Task.FromResult(dataReader)); A.CallTo(command).Where(x => x.Method.Name == "get_DbParameterCollection") .WithReturnType <DbParameterCollection>() .Returns(new StubParameterCollection()); A.CallTo(() => command.CommandText).Returns(""); A.CallTo(command).Where(x => x.Method.Name == "CreateDbParameter") .WithReturnType <DbParameter>() .Returns(new SqlParameter()); var persistenceDelegate = A.Fake <ITriggerPersistenceDelegate>(); var exception = new InvalidOperationException(); A.CallTo(() => persistenceDelegate.LoadExtendedTriggerProperties(A <ConnectionAndTransactionHolder> .Ignored, A <TriggerKey> .Ignored, CancellationToken.None)).Throws(exception); StdAdoDelegate adoDelegate = new TestStdAdoDelegate(persistenceDelegate); var delegateInitializationArgs = new DelegateInitializationArgs { TablePrefix = "QRTZ_", InstanceId = "TESTSCHED", InstanceName = "INSTANCE", TypeLoadHelper = new SimpleTypeLoadHelper(), UseProperties = false, InitString = "", DbProvider = dbProvider }; adoDelegate.Initialize(delegateInitializationArgs); // First result set has results, second has none A.CallTo(() => dataReader.ReadAsync(CancellationToken.None)).Returns(true).Once(); A.CallTo(() => dataReader[AdoConstants.ColumnTriggerType]).Returns(AdoConstants.TriggerTypeSimple); A.CallTo(() => dataReader[A <string> ._]).Returns("1"); var conn = new ConnectionAndTransactionHolder(connection, transaction); IOperableTrigger trigger = await adoDelegate.SelectTrigger(conn, new TriggerKey("test")); Assert.That(trigger, Is.Null); A.CallTo(() => persistenceDelegate.LoadExtendedTriggerProperties(A <ConnectionAndTransactionHolder> .Ignored, A <TriggerKey> .Ignored, CancellationToken.None)).MustHaveHappened(); }
public void TestSelectSimpleTriggerWithExceptionWithExtendedProps() { var dbProvider = MockRepository.GenerateMock <IDbProvider>(); var connection = MockRepository.GenerateMock <IDbConnection>(); var transaction = MockRepository.GenerateMock <IDbTransaction>(); var command = (IDbCommand)MockRepository.GenerateMock <StubCommand>(); var dbMetadata = new DbMetadata(); dbProvider.Stub(x => x.Metadata).Repeat.Any().Return(dbMetadata); dbProvider.Stub(x => x.CreateCommand()).Return(command); var dataReader = MockRepository.GenerateMock <IDataReader>(); command.Stub(x => x.ExecuteReader()).Return(dataReader); command.Stub(x => x.Parameters).Repeat.Any().Return(new StubParameterCollection()); command.Stub(x => x.CommandText).Return("").Repeat.Any(); command.Stub(x => x.CreateParameter()).Repeat.Any().Return(new StubDataParameter()); var persistenceDelegate = MockRepository.GenerateMock <ITriggerPersistenceDelegate>(); var exception = new InvalidOperationException(); persistenceDelegate.Stub(x => x.LoadExtendedTriggerProperties(Arg <ConnectionAndTransactionHolder> .Is.Anything, Arg <TriggerKey> .Is.Anything)).Throw(exception); StdAdoDelegate adoDelegate = new TestStdAdoDelegate(persistenceDelegate); var delegateInitializationArgs = new DelegateInitializationArgs { TablePrefix = "QRTZ_", InstanceId = "TESTSCHED", InstanceName = "INSTANCE", TypeLoadHelper = new SimpleTypeLoadHelper(), UseProperties = false, InitString = "", Logger = LogManager.GetLogger(GetType()), DbProvider = dbProvider }; adoDelegate.Initialize(delegateInitializationArgs); // Mock basic trigger data dataReader.Stub(x => x.Read()).Return(true).Repeat.Any(); dataReader.Stub(x => x[AdoConstants.ColumnTriggerType]).Return(AdoConstants.TriggerTypeSimple); try { var conn = new ConnectionAndTransactionHolder(connection, transaction); adoDelegate.SelectTrigger(conn, new TriggerKey("test")); Assert.Fail("Trigger selection should result in exception"); } catch (InvalidOperationException e) { Assert.That(e, Is.SameAs(exception)); } persistenceDelegate.AssertWasCalled(x => x.LoadExtendedTriggerProperties(Arg <ConnectionAndTransactionHolder> .Is.Anything, Arg <TriggerKey> .Is.Anything)); }
public void ShouldSupportAssemblyQualifiedTriggerPersistenceDelegates() { StdAdoDelegate adoDelegate = new TestStdAdoDelegate(new SimpleTriggerPersistenceDelegate()); var delegateInitializationArgs = new DelegateInitializationArgs { TablePrefix = "QRTZ_", InstanceId = "TESTSCHED", InstanceName = "INSTANCE", TypeLoadHelper = new SimpleTypeLoadHelper(), UseProperties = false, InitString = "triggerPersistenceDelegateClasses=" + typeof(TestTriggerPersistenceDelegate).AssemblyQualifiedName + ";" + typeof(TestTriggerPersistenceDelegate).AssemblyQualifiedName, DbProvider = A.Fake <IDbProvider>() }; adoDelegate.Initialize(delegateInitializationArgs); }
public void TestSelectSimpleTriggerWithDeleteBeforeSelectExtendedProps() { var dbProvider = MockRepository.GenerateMock<IDbProvider>(); var connection = MockRepository.GenerateMock<IDbConnection>(); var transaction = MockRepository.GenerateMock<IDbTransaction>(); var command = (IDbCommand)MockRepository.GenerateMock<StubCommand>(); var dbMetadata = new DbMetadata(); dbProvider.Stub(x => x.Metadata).Repeat.Any().Return(dbMetadata); dbProvider.Stub(x => x.CreateCommand()).Return(command); var dataReader = MockRepository.GenerateMock<IDataReader>(); command.Stub(x => x.ExecuteReader()).Return(dataReader); command.Stub(x => x.Parameters).Repeat.Any().Return(new StubParameterCollection()); command.Stub(x => x.CommandText).Return("").Repeat.Any(); command.Stub(x => x.CreateParameter()).Repeat.Any().Return(new StubDataParameter()); var persistenceDelegate = MockRepository.GenerateMock<ITriggerPersistenceDelegate>(); var exception = new InvalidOperationException(); persistenceDelegate.Stub(x => x.LoadExtendedTriggerProperties(Arg<ConnectionAndTransactionHolder>.Is.Anything, Arg<TriggerKey>.Is.Anything)).Throw(exception); StdAdoDelegate adoDelegate = new TestStdAdoDelegate(persistenceDelegate); var delegateInitializationArgs = new DelegateInitializationArgs { TablePrefix = "QRTZ_", InstanceId = "TESTSCHED", InstanceName = "INSTANCE", TypeLoadHelper = new SimpleTypeLoadHelper(), UseProperties = false, InitString = "", Logger = LogManager.GetLogger(GetType()), DbProvider = dbProvider }; adoDelegate.Initialize(delegateInitializationArgs); // First result set has results, second has none dataReader.Stub(x => x.Read()).Return(true).Repeat.Once(); dataReader.Stub(x => x.Read()).Return(false); dataReader.Stub(x => x[AdoConstants.ColumnTriggerType]).Return(AdoConstants.TriggerTypeSimple); var conn = new ConnectionAndTransactionHolder(connection, transaction); IOperableTrigger trigger = adoDelegate.SelectTrigger(conn, new TriggerKey("test")); Assert.That(trigger, Is.Null); persistenceDelegate.AssertWasCalled(x => x.LoadExtendedTriggerProperties(Arg<ConnectionAndTransactionHolder>.Is.Anything, Arg<TriggerKey>.Is.Anything)); }
public void ShouldSupportAssemblyQualifiedTriggerPersistenceDelegates() { StdAdoDelegate adoDelegate = new TestStdAdoDelegate(new SimpleTriggerPersistenceDelegate()); var delegateInitializationArgs = new DelegateInitializationArgs { TablePrefix = "QRTZ_", InstanceId = "TESTSCHED", InstanceName = "INSTANCE", TypeLoadHelper = new SimpleTypeLoadHelper(), UseProperties = false, InitString = "triggerPersistenceDelegateClasses=" + typeof(TestTriggerPersistenceDelegate).AssemblyQualifiedName + ";" + typeof(TestTriggerPersistenceDelegate).AssemblyQualifiedName, Logger = LogManager.GetLogger(GetType()), DbProvider = MockRepository.GenerateMock<IDbProvider>() }; adoDelegate.Initialize(delegateInitializationArgs); }