Merge changes I70fc7014,I2cb478d0
* changes: MultipleQuotaPluginsIT: Migrate from easymock to mockito MultipleQuotaPluginsIT: Clean up and fix tests
This commit is contained in:
		@@ -17,11 +17,10 @@ package com.google.gerrit.acceptance.server.quota;
 | 
				
			|||||||
import static com.google.common.truth.Truth.assertThat;
 | 
					import static com.google.common.truth.Truth.assertThat;
 | 
				
			||||||
import static com.google.common.truth.Truth8.assertThat;
 | 
					import static com.google.common.truth.Truth8.assertThat;
 | 
				
			||||||
import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 | 
					import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 | 
				
			||||||
import static org.easymock.EasyMock.expect;
 | 
					import static org.mockito.Mockito.clearInvocations;
 | 
				
			||||||
import static org.easymock.EasyMock.expectLastCall;
 | 
					import static org.mockito.Mockito.mock;
 | 
				
			||||||
import static org.easymock.EasyMock.replay;
 | 
					import static org.mockito.Mockito.verify;
 | 
				
			||||||
import static org.easymock.EasyMock.resetToStrict;
 | 
					import static org.mockito.Mockito.when;
 | 
				
			||||||
import static org.easymock.EasyMock.verify;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.collect.ImmutableList;
 | 
					import com.google.common.collect.ImmutableList;
 | 
				
			||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
 | 
					import com.google.gerrit.acceptance.AbstractDaemonTest;
 | 
				
			||||||
@@ -35,15 +34,12 @@ import com.google.gerrit.server.quota.QuotaResponse;
 | 
				
			|||||||
import com.google.inject.Inject;
 | 
					import com.google.inject.Inject;
 | 
				
			||||||
import com.google.inject.Module;
 | 
					import com.google.inject.Module;
 | 
				
			||||||
import java.util.OptionalLong;
 | 
					import java.util.OptionalLong;
 | 
				
			||||||
import org.easymock.EasyMock;
 | 
					 | 
				
			||||||
import org.junit.Before;
 | 
					import org.junit.Before;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class MultipleQuotaPluginsIT extends AbstractDaemonTest {
 | 
					public class MultipleQuotaPluginsIT extends AbstractDaemonTest {
 | 
				
			||||||
  private static final QuotaEnforcer quotaEnforcerA =
 | 
					  private static final QuotaEnforcer quotaEnforcerA = mock(QuotaEnforcer.class);
 | 
				
			||||||
      EasyMock.createStrictMock(QuotaEnforcer.class);
 | 
					  private static final QuotaEnforcer quotaEnforcerB = mock(QuotaEnforcer.class);
 | 
				
			||||||
  private static final QuotaEnforcer quotaEnforcerB =
 | 
					 | 
				
			||||||
      EasyMock.createStrictMock(QuotaEnforcer.class);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private IdentifiedUser identifiedAdmin;
 | 
					  private IdentifiedUser identifiedAdmin;
 | 
				
			||||||
  @Inject private QuotaBackend quotaBackend;
 | 
					  @Inject private QuotaBackend quotaBackend;
 | 
				
			||||||
@@ -67,39 +63,32 @@ public class MultipleQuotaPluginsIT extends AbstractDaemonTest {
 | 
				
			|||||||
  @Before
 | 
					  @Before
 | 
				
			||||||
  public void setUp() {
 | 
					  public void setUp() {
 | 
				
			||||||
    identifiedAdmin = identifiedUserFactory.create(admin.id());
 | 
					    identifiedAdmin = identifiedUserFactory.create(admin.id());
 | 
				
			||||||
    resetToStrict(quotaEnforcerA);
 | 
					    clearInvocations(quotaEnforcerA);
 | 
				
			||||||
    resetToStrict(quotaEnforcerB);
 | 
					    clearInvocations(quotaEnforcerB);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Test
 | 
					  @Test
 | 
				
			||||||
  public void refillsOnError() {
 | 
					  public void refillsOnError() {
 | 
				
			||||||
    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
					    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
				
			||||||
    expect(quotaEnforcerA.requestTokens("testGroup", ctx, 1)).andReturn(QuotaResponse.ok());
 | 
					    when(quotaEnforcerA.requestTokens("testGroup", ctx, 1)).thenReturn(QuotaResponse.ok());
 | 
				
			||||||
    expect(quotaEnforcerB.requestTokens("testGroup", ctx, 1))
 | 
					    when(quotaEnforcerB.requestTokens("testGroup", ctx, 1)).thenReturn(QuotaResponse.error("fail"));
 | 
				
			||||||
        .andReturn(QuotaResponse.error("fail"));
 | 
					 | 
				
			||||||
    quotaEnforcerA.refill("testGroup", ctx, 1);
 | 
					 | 
				
			||||||
    expectLastCall();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    replay(quotaEnforcerA);
 | 
					 | 
				
			||||||
    replay(quotaEnforcerB);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    assertThat(quotaBackend.user(identifiedAdmin).requestToken("testGroup"))
 | 
					    assertThat(quotaBackend.user(identifiedAdmin).requestToken("testGroup"))
 | 
				
			||||||
        .isEqualTo(
 | 
					        .isEqualTo(
 | 
				
			||||||
            QuotaResponse.Aggregated.create(
 | 
					            QuotaResponse.Aggregated.create(
 | 
				
			||||||
                ImmutableList.of(QuotaResponse.ok(), QuotaResponse.error("fail"))));
 | 
					                ImmutableList.of(QuotaResponse.ok(), QuotaResponse.error("fail"))));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    verify(quotaEnforcerA).requestTokens("testGroup", ctx, 1);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerB).requestTokens("testGroup", ctx, 1);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerA).refill("testGroup", ctx, 1);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Test
 | 
					  @Test
 | 
				
			||||||
  public void refillsOnException() {
 | 
					  public void refillsOnException() {
 | 
				
			||||||
    NullPointerException exception = new NullPointerException();
 | 
					    NullPointerException exception = new NullPointerException();
 | 
				
			||||||
    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
					    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
				
			||||||
    expect(quotaEnforcerA.requestTokens("testGroup", ctx, 1)).andThrow(exception);
 | 
					    when(quotaEnforcerA.requestTokens("testGroup", ctx, 1)).thenReturn(QuotaResponse.ok());
 | 
				
			||||||
    expect(quotaEnforcerB.requestTokens("testGroup", ctx, 1)).andReturn(QuotaResponse.ok());
 | 
					    when(quotaEnforcerB.requestTokens("testGroup", ctx, 1)).thenThrow(exception);
 | 
				
			||||||
    quotaEnforcerB.refill("testGroup", ctx, 1);
 | 
					 | 
				
			||||||
    expectLastCall();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    replay(quotaEnforcerA);
 | 
					 | 
				
			||||||
    replay(quotaEnforcerB);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    NullPointerException thrown =
 | 
					    NullPointerException thrown =
 | 
				
			||||||
        assertThrows(
 | 
					        assertThrows(
 | 
				
			||||||
@@ -107,52 +96,53 @@ public class MultipleQuotaPluginsIT extends AbstractDaemonTest {
 | 
				
			|||||||
            () -> quotaBackend.user(identifiedAdmin).requestToken("testGroup"));
 | 
					            () -> quotaBackend.user(identifiedAdmin).requestToken("testGroup"));
 | 
				
			||||||
    assertThat(thrown).isEqualTo(exception);
 | 
					    assertThat(thrown).isEqualTo(exception);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    verify(quotaEnforcerA);
 | 
					    verify(quotaEnforcerA).requestTokens("testGroup", ctx, 1);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerB).requestTokens("testGroup", ctx, 1);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerA).refill("testGroup", ctx, 1);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Test
 | 
					  @Test
 | 
				
			||||||
  public void doesNotRefillNoOp() {
 | 
					  public void doesNotRefillNoOp() {
 | 
				
			||||||
    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
					    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
				
			||||||
    expect(quotaEnforcerA.requestTokens("testGroup", ctx, 1))
 | 
					    when(quotaEnforcerA.requestTokens("testGroup", ctx, 1)).thenReturn(QuotaResponse.error("fail"));
 | 
				
			||||||
        .andReturn(QuotaResponse.error("fail"));
 | 
					    when(quotaEnforcerB.requestTokens("testGroup", ctx, 1)).thenReturn(QuotaResponse.noOp());
 | 
				
			||||||
    expect(quotaEnforcerB.requestTokens("testGroup", ctx, 1)).andReturn(QuotaResponse.noOp());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    replay(quotaEnforcerA);
 | 
					 | 
				
			||||||
    replay(quotaEnforcerB);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    assertThat(quotaBackend.user(identifiedAdmin).requestToken("testGroup"))
 | 
					    assertThat(quotaBackend.user(identifiedAdmin).requestToken("testGroup"))
 | 
				
			||||||
        .isEqualTo(
 | 
					        .isEqualTo(
 | 
				
			||||||
            QuotaResponse.Aggregated.create(
 | 
					            QuotaResponse.Aggregated.create(
 | 
				
			||||||
                ImmutableList.of(QuotaResponse.error("fail"), QuotaResponse.noOp())));
 | 
					                ImmutableList.of(QuotaResponse.error("fail"), QuotaResponse.noOp())));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    verify(quotaEnforcerA).requestTokens("testGroup", ctx, 1);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerB).requestTokens("testGroup", ctx, 1);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Test
 | 
					  @Test
 | 
				
			||||||
  public void minimumAvailableTokens() {
 | 
					  public void minimumAvailableTokens() {
 | 
				
			||||||
    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
					    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
				
			||||||
    expect(quotaEnforcerA.availableTokens("testGroup", ctx)).andReturn(QuotaResponse.ok(20L));
 | 
					    when(quotaEnforcerA.availableTokens("testGroup", ctx)).thenReturn(QuotaResponse.ok(20L));
 | 
				
			||||||
    expect(quotaEnforcerB.availableTokens("testGroup", ctx)).andReturn(QuotaResponse.ok(10L));
 | 
					    when(quotaEnforcerB.availableTokens("testGroup", ctx)).thenReturn(QuotaResponse.ok(10L));
 | 
				
			||||||
 | 
					 | 
				
			||||||
    replay(quotaEnforcerA);
 | 
					 | 
				
			||||||
    replay(quotaEnforcerB);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OptionalLong tokens =
 | 
					    OptionalLong tokens =
 | 
				
			||||||
        quotaBackend.user(identifiedAdmin).availableTokens("testGroup").availableTokens();
 | 
					        quotaBackend.user(identifiedAdmin).availableTokens("testGroup").availableTokens();
 | 
				
			||||||
    assertThat(tokens).isPresent();
 | 
					    assertThat(tokens).isPresent();
 | 
				
			||||||
    assertThat(tokens.getAsLong()).isEqualTo(10L);
 | 
					    assertThat(tokens.getAsLong()).isEqualTo(10L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    verify(quotaEnforcerA).availableTokens("testGroup", ctx);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerB).availableTokens("testGroup", ctx);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Test
 | 
					  @Test
 | 
				
			||||||
  public void ignoreNoOpForAvailableTokens() {
 | 
					  public void ignoreNoOpForAvailableTokens() {
 | 
				
			||||||
    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
					    QuotaRequestContext ctx = QuotaRequestContext.builder().user(identifiedAdmin).build();
 | 
				
			||||||
    expect(quotaEnforcerA.availableTokens("testGroup", ctx)).andReturn(QuotaResponse.noOp());
 | 
					    when(quotaEnforcerA.availableTokens("testGroup", ctx)).thenReturn(QuotaResponse.noOp());
 | 
				
			||||||
    expect(quotaEnforcerB.availableTokens("testGroup", ctx)).andReturn(QuotaResponse.ok(20L));
 | 
					    when(quotaEnforcerB.availableTokens("testGroup", ctx)).thenReturn(QuotaResponse.ok(20L));
 | 
				
			||||||
 | 
					 | 
				
			||||||
    replay(quotaEnforcerA);
 | 
					 | 
				
			||||||
    replay(quotaEnforcerB);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OptionalLong tokens =
 | 
					    OptionalLong tokens =
 | 
				
			||||||
        quotaBackend.user(identifiedAdmin).availableTokens("testGroup").availableTokens();
 | 
					        quotaBackend.user(identifiedAdmin).availableTokens("testGroup").availableTokens();
 | 
				
			||||||
    assertThat(tokens).isPresent();
 | 
					    assertThat(tokens).isPresent();
 | 
				
			||||||
    assertThat(tokens.getAsLong()).isEqualTo(20L);
 | 
					    assertThat(tokens.getAsLong()).isEqualTo(20L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    verify(quotaEnforcerA).availableTokens("testGroup", ctx);
 | 
				
			||||||
 | 
					    verify(quotaEnforcerB).availableTokens("testGroup", ctx);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user