Exemple #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWith2ConditionsWhenGrantTwiceAndDenyOnceAndAwaitThenTimeoutAndReturnFalse()
        public virtual void GivenAccessGuardWith2ConditionsWhenGrantTwiceAndDenyOnceAndAwaitThenTimeoutAndReturnFalse()
        {
            // Given
            Log log = mock(typeof(Log));
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            databaseAvailabilityGuard.Require(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            // When
            databaseAvailabilityGuard.Fulfill(_requirement_1);
            databaseAvailabilityGuard.Fulfill(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            long start   = _clock.millis();
            long timeout = 1000;
            bool result  = databaseAvailabilityGuard.IsAvailable(timeout);
            long end     = _clock.millis();

            // Then
            long waitTime = end - start;

            assertFalse(result);
            assertThat(waitTime, greaterThanOrEqualTo(timeout));
        }
Exemple #2
0
 internal PageCacheWarmerKernelExtension(JobScheduler scheduler, DatabaseAvailabilityGuard databaseAvailabilityGuard, PageCache pageCache, FileSystemAbstraction fs, NeoStoreDataSource dataSource, Log log, PageCacheWarmerMonitor monitor, Config config)
 {
     this._databaseAvailabilityGuard = databaseAvailabilityGuard;
     this._dataSource      = dataSource;
     this._config          = config;
     _pageCacheWarmer      = new PageCacheWarmer(fs, pageCache, scheduler, dataSource.DatabaseLayout.databaseDirectory());
     _availabilityListener = new WarmupAvailabilityListener(scheduler, _pageCacheWarmer, config, log, monitor);
 }
Exemple #3
0
        //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
        //ORIGINAL LINE: @Before public void setUp()
        public virtual void SetUp()
        {
            _master = mock( typeof( Master ), new LockedOnMasterAnswer() );
              _lockManager = new ForsetiLockManager( Config.defaults(), Clocks.systemClock(), ResourceTypes.values() );
              _requestContextFactory = mock( typeof( RequestContextFactory ) );
              _databaseAvailabilityGuard = new DatabaseAvailabilityGuard( GraphDatabaseSettings.DEFAULT_DATABASE_NAME, Clocks.systemClock(), mock(typeof(Log)) );

              when( _requestContextFactory.newRequestContext( Mockito.anyInt() ) ).thenReturn(RequestContext.anonymous(1));
        }
Exemple #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void availabilityGuardRaisedOnCreation()
        public virtual void AvailabilityGuardRaisedOnCreation()
        {
            DatabaseAvailabilityGuard guard = NewAvailabilityGuard();

            assertTrue(guard.Available);
            LocalDatabase localDatabase = NewLocalDatabase(guard);

            assertNotNull(localDatabase);
            AssertDatabaseIsStoppedAndUnavailable(guard);
        }
Exemple #5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldExplainWhoIsBlockingAccess()
        public virtual void ShouldExplainWhoIsBlockingAccess()
        {
            // Given
            Log log = mock(typeof(Log));
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            // When
            databaseAvailabilityGuard.Require(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            // Then
            assertThat(databaseAvailabilityGuard.DescribeWhoIsBlocking(), equalTo("2 reasons for blocking: Requirement 1, Requirement 2."));
        }
Exemple #6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWith2ConditionsWhenGrantEachAndAwaitThenTrue()
        public virtual void GivenAccessGuardWith2ConditionsWhenGrantEachAndAwaitThenTrue()
        {
            // Given
            Log log = mock(typeof(Log));
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            databaseAvailabilityGuard.Require(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            // When
            databaseAvailabilityGuard.Fulfill(_requirement_1);
            databaseAvailabilityGuard.Fulfill(_requirement_2);

            assertTrue(databaseAvailabilityGuard.IsAvailable(1000));
        }
Exemple #7
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWith2ConditionsWhenAwaitThenTimeoutAndReturnFalse()
        public virtual void GivenAccessGuardWith2ConditionsWhenAwaitThenTimeoutAndReturnFalse()
        {
            // Given
            Log log = mock(typeof(Log));
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            databaseAvailabilityGuard.Require(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            // When
            bool result = databaseAvailabilityGuard.IsAvailable(1000);

            // Then
            assertThat(result, equalTo(false));
        }
Exemple #8
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void availabilityGuardRaisedOnStop() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void AvailabilityGuardRaisedOnStop()
        {
            DatabaseAvailabilityGuard guard = NewAvailabilityGuard();

            assertTrue(guard.Available);

            LocalDatabase localDatabase = NewLocalDatabase(guard);

            assertFalse(guard.Available);

            localDatabase.Start();
            assertTrue(guard.Available);

            localDatabase.Stop();
            AssertDatabaseIsStoppedAndUnavailable(guard);
        }
Exemple #9
0
        public override Lifecycle NewInstance(KernelContext context, Dependencies deps)
        {
            JobScheduler scheduler = deps.JobScheduler();
            DatabaseAvailabilityGuard databaseAvailabilityGuard = deps.AvailabilityGuard();
            PageCache             pageCache         = deps.PageCache();
            FileSystemAbstraction fs                = deps.FileSystemAbstraction();
            LogService            logService        = deps.LogService();
            NeoStoreDataSource    dataSourceManager = deps.DataSource;
            Log      log      = logService.GetInternalLog(typeof(PageCacheWarmer));
            Monitors monitors = deps.Monitors();
            PageCacheWarmerMonitor monitor = monitors.NewMonitor(typeof(PageCacheWarmerMonitor));

            monitors.AddMonitorListener(new PageCacheWarmerLoggingMonitor(log));
            Config config = deps.Config();

            return(new PageCacheWarmerKernelExtension(scheduler, databaseAvailabilityGuard, pageCache, fs, dataSourceManager, log, monitor, config));
        }
Exemple #10
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWithConditionWhenShutdownThenInstantlyDenyAccess()
        public virtual void GivenAccessGuardWithConditionWhenShutdownThenInstantlyDenyAccess()
        {
            // Given
            Clock clock = Mockito.mock(typeof(Clock));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.kernel.availability.DatabaseAvailabilityGuard databaseAvailabilityGuard = getDatabaseAvailabilityGuard(clock, org.neo4j.logging.NullLog.getInstance());
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(clock, NullLog.Instance);

            databaseAvailabilityGuard.Require(_requirement_1);

            // When
            databaseAvailabilityGuard.Shutdown();

            // Then
            assertFalse(databaseAvailabilityGuard.IsAvailable(1000));
            verifyZeroInteractions(clock);
        }
Exemple #11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWith2ConditionsWhenGrantOnceAndAwaitAndGrantAgainThenReturnTrue()
        public virtual void GivenAccessGuardWith2ConditionsWhenGrantOnceAndAwaitAndGrantAgainThenReturnTrue()
        {
            // Given
            Log log = mock(typeof(Log));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.kernel.availability.DatabaseAvailabilityGuard databaseAvailabilityGuard = getDatabaseAvailabilityGuard(clock, log);
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            databaseAvailabilityGuard.Require(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            databaseAvailabilityGuard.Fulfill(_requirement_2);
            assertFalse(databaseAvailabilityGuard.IsAvailable(100));

            databaseAvailabilityGuard.Fulfill(_requirement_1);
            assertTrue(databaseAvailabilityGuard.IsAvailable(100));
        }
Exemple #12
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWith2ConditionsWhenAwaitThenActuallyWaitGivenTimeout()
        public virtual void GivenAccessGuardWith2ConditionsWhenAwaitThenActuallyWaitGivenTimeout()
        {
            // Given
            Log log = mock(typeof(Log));
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            databaseAvailabilityGuard.Require(_requirement_1);
            databaseAvailabilityGuard.Require(_requirement_2);

            // When
            long timeout = 1000;
            long start   = _clock.millis();
            bool result  = databaseAvailabilityGuard.IsAvailable(timeout);
            long end     = _clock.millis();

            // Then
            long waitTime = end - start;

            assertThat(result, equalTo(false));
            assertThat(waitTime, greaterThanOrEqualTo(timeout));
        }
Exemple #13
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldExplainBlockersOnCheckAvailable() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldExplainBlockersOnCheckAvailable()
        {
            // GIVEN
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(Clocks.systemClock(), Instance);

            // At this point it should be available
            databaseAvailabilityGuard.CheckAvailable();

            // WHEN
            databaseAvailabilityGuard.Require(_requirement_1);

            // THEN
            try
            {
                databaseAvailabilityGuard.CheckAvailable();
                fail("Should not be available");
            }
            catch (UnavailableException e)
            {
                assertThat(e.Message, containsString(_requirement_1()));
            }
        }
Exemple #14
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void givenAccessGuardWithConditionWhenGrantThenNotifyListeners()
        public virtual void GivenAccessGuardWithConditionWhenGrantThenNotifyListeners()
        {
            // Given
            Log log = mock(typeof(Log));
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.kernel.availability.DatabaseAvailabilityGuard databaseAvailabilityGuard = getDatabaseAvailabilityGuard(clock, log);
            DatabaseAvailabilityGuard databaseAvailabilityGuard = GetDatabaseAvailabilityGuard(_clock, log);

            databaseAvailabilityGuard.Require(_requirement_1);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.concurrent.atomic.AtomicBoolean notified = new java.util.concurrent.atomic.AtomicBoolean();
            AtomicBoolean        notified             = new AtomicBoolean();
            AvailabilityListener availabilityListener = new AvailabilityListenerAnonymousInnerClass(this, notified);

            databaseAvailabilityGuard.AddListener(availabilityListener);

            // When
            databaseAvailabilityGuard.Fulfill(_requirement_1);

            // Then
            assertThat(notified.get(), equalTo(true));
        }
Exemple #15
0
 private static void AssertDatabaseIsStoppedForStoreCopyAndUnavailable(DatabaseAvailabilityGuard guard)
 {
     assertFalse(guard.Available);
     assertThat(guard.DescribeWhoIsBlocking(), containsString("Database is stopped to copy store"));
 }
Exemple #16
0
 public CoreAPIAvailabilityGuard(DatabaseAvailabilityGuard guard, long timeout)
 {
     this._guard   = guard;
     this._timeout = timeout;
 }