private void assertGetFieldDefinition(
     ValueMetaInterface valueMetaInterface, String expectedType) {
   assertEquals(
       expectedType,
       impalaDatabaseMeta.getFieldDefinition(valueMetaInterface, null, null, false, false, false));
   assertEquals(
       valueMetaInterface.getName() + " " + expectedType,
       impalaDatabaseMeta.getFieldDefinition(valueMetaInterface, null, null, false, true, false));
 }
 @Test
 public void testVersionConstructor() throws Throwable {
   int majorVersion = 22;
   int minorVersion = 33;
   when(driver.getMajorVersion()).thenReturn(majorVersion);
   when(driver.getMinorVersion()).thenReturn(minorVersion);
   assertTrue(impalaDatabaseMeta.isDriverVersion(majorVersion, minorVersion));
   assertFalse(impalaDatabaseMeta.isDriverVersion(majorVersion, minorVersion + 1));
   assertFalse(impalaDatabaseMeta.isDriverVersion(majorVersion + 1, minorVersion));
 }
 @Test
 public void testGetURLEmptyPort() throws KettleDatabaseException, MalformedURLException {
   String testHostname = "testHostname";
   String testDbName = "testDbName";
   String urlString = impalaDatabaseMeta.getURL(testHostname, "", testDbName);
   assertTrue(urlString.startsWith(ImpalaDatabaseMeta.URL_PREFIX));
   // Use known prefix
   urlString = "http://" + urlString.substring(ImpalaDatabaseMeta.URL_PREFIX.length());
   URL url = new URL(urlString);
   assertEquals(testHostname, url.getHost());
   assertEquals(impalaDatabaseMeta.getDefaultDatabasePort(), url.getPort());
   assertEquals("/" + testDbName + ImpalaDatabaseMeta.AUTH_NO_SASL, url.getPath());
 }
  @Test
  public void testGetURLPrincipal() throws KettleDatabaseException, MalformedURLException {
    String testHostname = "testHostname";
    int port = 9429;
    String testDbName = "testDbName";
    impalaDatabaseMeta.getAttributes().put("principal", "testP");
    String urlString = impalaDatabaseMeta.getURL(testHostname, "" + port, testDbName);
    assertTrue(urlString.startsWith(ImpalaDatabaseMeta.URL_PREFIX));
    // Use known prefix
    urlString = "http://" + urlString.substring(ImpalaDatabaseMeta.URL_PREFIX.length());
    URL url = new URL(urlString);
    assertEquals(testHostname, url.getHost());
    assertEquals(port, url.getPort());
    assertEquals("/" + testDbName, url.getPath());

    impalaDatabaseMeta.getAttributes().remove("principal");
    impalaDatabaseMeta
        .getAttributes()
        .put(
            ImpalaDatabaseMeta.ATTRIBUTE_PREFIX_EXTRA_OPTION
                + impalaDatabaseMeta.getPluginId()
                + ".principal",
            "testP");
    urlString = impalaDatabaseMeta.getURL(testHostname, "" + port, testDbName);
    assertTrue(urlString.startsWith(ImpalaDatabaseMeta.URL_PREFIX));
    // Use known prefix
    urlString = "http://" + urlString.substring(ImpalaDatabaseMeta.URL_PREFIX.length());
    url = new URL(urlString);
    assertEquals(testHostname, url.getHost());
    assertEquals(port, url.getPort());
    assertEquals("/" + testDbName, url.getPath());
  }
 @Test
 public void testGetDriverClass() {
   assertEquals(ImpalaDatabaseMeta.DRIVER_CLASS_NAME, impalaDatabaseMeta.getDriverClass());
 }
 @Test
 public void testGetAccessTypeList() {
   assertArrayEquals(
       new int[] {DatabaseMeta.TYPE_ACCESS_NATIVE}, impalaDatabaseMeta.getAccessTypeList());
 }
 @Before
 public void setup() throws Throwable {
   impalaDatabaseMeta = new ImpalaDatabaseMeta(driverLocator);
   impalaDatabaseMetaURL = impalaDatabaseMeta.getURL(LOCALHOST, PORT, DEFAULT);
   when(driverLocator.getDriver(impalaDatabaseMetaURL)).thenReturn(driver);
 }
 @Test
 public void testGetDefaultDatabasePort() {
   assertEquals(ImpalaDatabaseMeta.DEFAULT_PORT, impalaDatabaseMeta.getDefaultDatabasePort());
 }
 @Test
 public void testGetUsedLibraries() {
   assertArrayEquals(
       new String[] {ImpalaDatabaseMeta.JAR_FILE}, impalaDatabaseMeta.getUsedLibraries());
 }