/* * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0 * (the "License"). You may not use this work except in compliance with the License, which is * available at www.apache.org/licenses/LICENSE-2.0 * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied, as more fully set forth in the License. * * See the NOTICE file distributed with this work for information regarding copyright ownership. */ package alluxio; import static alluxio.exception.ExceptionMessage.INCOMPATIBLE_VERSION; import alluxio.thrift.AlluxioService; import alluxio.thrift.AlluxioService.Client; import alluxio.thrift.GetServiceVersionTOptions; import alluxio.thrift.GetServiceVersionTResponse; import org.junit.Assert; import org.junit.Test; import org.junit.Rule; import org.junit.rules.ExpectedException; import org.mockito.Mockito; import java.io.IOException; import java.net.InetSocketAddress; /** * Unit tests for {@link AbstractClient}. */ public final class AbstractClientTest { private static final String SERVICE_NAME = "Test Service Name"; @Rule public ExpectedException mExpectedException = ExpectedException.none(); private final class TestClient extends AbstractClient { private TestClient() { super(null, Mockito.mock(InetSocketAddress.class)); } @Override protected Client getClient() { return null; } @Override protected String getServiceName() { return SERVICE_NAME; } @Override protected long getServiceVersion() { return 1; } @Override public void checkVersion(AlluxioService.Client thriftClient, long version) throws IOException { super.checkVersion(thriftClient, version); } } @Test public void unsupportedVersion() throws Exception { final AlluxioService.Client thriftClient = Mockito.mock(AlluxioService.Client.class); Mockito.when(thriftClient.getServiceVersion(new GetServiceVersionTOptions())) .thenReturn(new GetServiceVersionTResponse().setVersion(1)); mExpectedException.expect(IOException.class); mExpectedException.expectMessage(INCOMPATIBLE_VERSION.getMessage(SERVICE_NAME, 0, 1)); try (TestClient client = new TestClient()) { client.checkVersion(thriftClient, 0); Assert.fail("checkVersion() should fail"); } } @Test public void supportedVersion() throws Exception { final AlluxioService.Client thriftClient = Mockito.mock(AlluxioService.Client.class); Mockito.when(thriftClient.getServiceVersion(new GetServiceVersionTOptions())) .thenReturn(new GetServiceVersionTResponse().setVersion(1)); try (TestClient client = new TestClient()) { client.checkVersion(thriftClient, 1); } } }