  @Test
  public void testNewTransactionWithSuccess() throws Throwable {

    final MethodInvocation invocation = mockery.mock(MethodInvocation.class);
    mockery.checking(new Expectations() {

      {
        Sequence seq = mockery.sequence("newTx");
        exactly(1).of(invocation).getMethod();
        will(returnValue(propagtedIsolatedTransaction));
        inSequence(seq);
        exactly(1).of(mockManager).getCurrentTransaction();
        will(returnValue(null));
        inSequence(seq);
        Transaction tx = mockery.mock(Transaction.class);
        exactly(1).of(mockManager).beginTransaction(true);
        will(returnValue(tx));
        inSequence(seq);
        exactly(1).of(invocation).proceed();
        will(returnValue(sampleService));
        inSequence(seq);
        exactly(1).of(tx).commit();
        inSequence(seq);
      }
    });
    Assert.assertSame(sampleService, interceptor.invoke(invocation));
    mockery.assertIsSatisfied();
  }