@Test
public void testVerifyProviderEndpoint() {

    
    // http successful test cases (localhost or *.athenzcompany.com)
    assertTrue(zms.verifyProviderEndpoint("http://localhost"));
    assertTrue(zms.verifyProviderEndpoint("http://localhost:4080"));
    assertTrue(zms.verifyProviderEndpoint("http://localhost:4080/"));
    assertTrue(zms.verifyProviderEndpoint("http://localhost:4080/test1"));
    assertTrue(zms.verifyProviderEndpoint("http://host1.athenzcompany.com"));
    assertTrue(zms.verifyProviderEndpoint("http://host1.athenzcompany.com:4080"));
    assertTrue(zms.verifyProviderEndpoint("http://host1.athenzcompany.com:4080/"));
    assertTrue(zms.verifyProviderEndpoint("http://host1.athenzcompany.com:4080/test1"));
    
    // https successful test cases (localhost or *.athenzcompany.com)
    assertTrue(zms.verifyProviderEndpoint("https://localhost"));
    assertTrue(zms.verifyProviderEndpoint("https://localhost:4080"));
    assertTrue(zms.verifyProviderEndpoint("https://localhost:4080/"));
    assertTrue(zms.verifyProviderEndpoint("https://localhost:4080/test1"));
    assertTrue(zms.verifyProviderEndpoint("https://host1.athenzcompany.com"));
    assertTrue(zms.verifyProviderEndpoint("https://host1.athenzcompany.com:4080"));
    assertTrue(zms.verifyProviderEndpoint("https://host1.athenzcompany.com:4080/"));
    assertTrue(zms.verifyProviderEndpoint("https://host1.athenzcompany.com:4080/test1"));
    
    // class successful test case
    assertTrue(zms.verifyProviderEndpoint("class://com.yahoo.athenz.zms.ZMS"));
    
    // http invalid cases - not *.athenzcompany.com
    assertFalse(zms.verifyProviderEndpoint("http://host1.server.com"));
    assertFalse(zms.verifyProviderEndpoint("http://host1.server.com:4080"));
    assertFalse(zms.verifyProviderEndpoint("http://host1.server.com:4080/"));
    assertFalse(zms.verifyProviderEndpoint("http://host1.server.yahoo:4080/test1"));
    assertFalse(zms.verifyProviderEndpoint("http://host1.athenz.server.com:4080/test1"));
    assertFalse(zms.verifyProviderEndpoint("http://host1.athenz.ch:4080/test1"));
    
    // non-http scheme test cases
    assertFalse(zms.verifyProviderEndpoint("file://host1.athenz.com"));
    
    // other null and empty test cases
    assertTrue(zms.verifyProviderEndpoint(null));
    assertTrue(zms.verifyProviderEndpoint(""));
}