Search in sources :

Example 6 with HystrixContextScheduler

use of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler in project Hystrix by Netflix.

the class HystrixObservableCommandTest method testSuccessfulRequestContextWithSemaphoreIsolatedAsynchronousObservableAndCapturedContextScheduler.

/**
     * Async Observable and semaphore isolation WITH functioning RequestContext
     *
     * Use HystrixContextScheduler to make the user provided scheduler capture context.
     */
@Test
public void testSuccessfulRequestContextWithSemaphoreIsolatedAsynchronousObservableAndCapturedContextScheduler() {
    RequestContextTestResults results = testRequestContextOnSuccess(ExecutionIsolationStrategy.SEMAPHORE, new HystrixContextScheduler(Schedulers.newThread()));
    // the user scheduler captures context
    assertTrue(results.isContextInitialized.get());
    // the user provided thread/scheduler
    assertTrue(results.originThread.get().getName().startsWith("RxNewThread"));
    // the user scheduler captures context
    assertTrue(results.isContextInitializedObserveOn.get());
    // the user provided thread/scheduler
    assertTrue(results.observeOnThread.get().getName().startsWith("RxNewThread"));
    // semaphore isolated
    assertFalse(results.command.isExecutedInThread());
}
Also used : HystrixContextScheduler(com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler) Test(org.junit.Test)

Example 7 with HystrixContextScheduler

use of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler in project Hystrix by Netflix.

the class HystrixObservableCommandTest method testFailureWithFallbackRequestContextWithSemaphoreIsolatedAsynchronousObservableAndCapturedContextScheduler.

/**
     * Async Observable and semaphore isolation WITH functioning RequestContext
     *
     * Use HystrixContextScheduler to make the user provided scheduler capture context.
     */
@Test
public void testFailureWithFallbackRequestContextWithSemaphoreIsolatedAsynchronousObservableAndCapturedContextScheduler() {
    RequestContextTestResults results = testRequestContextOnFailureWithFallback(ExecutionIsolationStrategy.SEMAPHORE, new HystrixContextScheduler(Schedulers.newThread()));
    // the user scheduler captures context
    assertTrue(results.isContextInitialized.get());
    // the user provided thread/scheduler
    assertTrue(results.originThread.get().getName().startsWith("RxNewThread"));
    // the user scheduler captures context
    assertTrue(results.isContextInitializedObserveOn.get());
    // the user provided thread/scheduler
    assertTrue(results.observeOnThread.get().getName().startsWith("RxNewThread"));
    // semaphore isolated
    assertFalse(results.command.isExecutedInThread());
}
Also used : HystrixContextScheduler(com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler) Test(org.junit.Test)

Example 8 with HystrixContextScheduler

use of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler in project Hystrix by Netflix.

the class HystrixObservableCommandTest method testRejectionWithFallbackRequestContextWithThreadIsolatedAsynchronousObservableAndCapturedContextScheduler.

/**
     * Async Observable and semaphore isolation WITH functioning RequestContext
     *
     * Use HystrixContextScheduler to make the user provided scheduler capture context.
     */
@Test
public void testRejectionWithFallbackRequestContextWithThreadIsolatedAsynchronousObservableAndCapturedContextScheduler() {
    RequestContextTestResults results = testRequestContextOnRejectionWithFallback(ExecutionIsolationStrategy.THREAD, new HystrixContextScheduler(Schedulers.newThread()));
    // the user scheduler captures context
    assertTrue(results.isContextInitialized.get());
    // the user provided thread/scheduler
    assertTrue(results.originThread.get().getName().startsWith("RxNewThread"));
    // the user scheduler captures context
    assertTrue(results.isContextInitializedObserveOn.get());
    // the user provided thread/scheduler for getFallback
    assertTrue(results.observeOnThread.get().getName().startsWith("RxNewThread"));
    // thread isolated, but rejected, so this is false
    assertFalse(results.command.isExecutedInThread());
}
Also used : HystrixContextScheduler(com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler) Test(org.junit.Test)

Example 9 with HystrixContextScheduler

use of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler in project Hystrix by Netflix.

the class HystrixObservableCommandTest method testTimeoutWithFallbackRequestContextWithSemaphoreIsolatedAsynchronousObservableAndCapturedContextScheduler.

/**
     * Async Observable and semaphore isolation WITH functioning RequestContext
     *
     * Use HystrixContextScheduler to make the user provided scheduler capture context.
     */
@Test
public void testTimeoutWithFallbackRequestContextWithSemaphoreIsolatedAsynchronousObservableAndCapturedContextScheduler() {
    RequestContextTestResults results = testRequestContextOnTimeoutWithFallback(ExecutionIsolationStrategy.SEMAPHORE, new HystrixContextScheduler(Schedulers.newThread()));
    // the user scheduler captures context
    assertTrue(results.isContextInitialized.get());
    // the user provided thread/scheduler
    assertTrue(results.originThread.get().getName().startsWith("RxNewThread"));
    // the user scheduler captures context
    assertTrue(results.isContextInitializedObserveOn.get());
    // the user provided thread/scheduler
    assertTrue(results.observeOnThread.get().getName().startsWith("RxNewThread"));
    // semaphore isolated
    assertFalse(results.command.isExecutedInThread());
    HystrixCircuitBreaker.Factory.reset();
}
Also used : HystrixContextScheduler(com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler) Test(org.junit.Test)

Example 10 with HystrixContextScheduler

use of com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler in project Hystrix by Netflix.

the class HystrixObservableCommandTest method testGracefulFailureRequestContextWithThreadIsolatedAsynchronousObservableAndCapturedContextScheduler.

/**
     * Async Observable and semaphore isolation WITH functioning RequestContext
     *
     * Use HystrixContextScheduler to make the user provided scheduler capture context.
     */
@Test
public void testGracefulFailureRequestContextWithThreadIsolatedAsynchronousObservableAndCapturedContextScheduler() {
    RequestContextTestResults results = testRequestContextOnGracefulFailure(ExecutionIsolationStrategy.THREAD, new HystrixContextScheduler(Schedulers.newThread()));
    // the user scheduler captures context
    assertTrue(results.isContextInitialized.get());
    // the user provided thread/scheduler
    assertTrue(results.originThread.get().getName().startsWith("RxNewThread"));
    // the user scheduler captures context
    assertTrue(results.isContextInitializedObserveOn.get());
    assertTrue(results.observeOnThread.get().getName().startsWith("RxNewThread"));
    // thread isolated
    assertTrue(results.command.isExecutedInThread());
}
Also used : HystrixContextScheduler(com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler) Test(org.junit.Test)

Aggregations

HystrixContextScheduler (com.netflix.hystrix.strategy.concurrency.HystrixContextScheduler)16 Test (org.junit.Test)15 TestCircuitBreaker (com.netflix.hystrix.HystrixCircuitBreakerTest.TestCircuitBreaker)1 HystrixRuntimeException (com.netflix.hystrix.exception.HystrixRuntimeException)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Notification (rx.Notification)1 OnSubscribe (rx.Observable.OnSubscribe)1 Subscriber (rx.Subscriber)1 Action1 (rx.functions.Action1)1 Func0 (rx.functions.Func0)1 TestSubscriber (rx.observers.TestSubscriber)1