package net.time4j.tz;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JUnit4.class)
public class ProviderRegistrationTest {
@Test(expected=IllegalArgumentException.class)
public void registerEmptyNameProvider() {
Timezone.registerProvider(new DummyProvider(""));
}
@Test(expected=IllegalArgumentException.class)
public void registerTZDBProvider() {
Timezone.registerProvider(new DummyProvider("TZDB"));
}
@Test(expected=IllegalArgumentException.class)
public void registerPlatformProvider() {
Timezone.registerProvider(new DummyProvider("java.util.TimeZone"));
}
@Test
public void registerDummyProvider() {
assertThat(
Timezone.registerProvider(new DummyProvider("dummy")),
is(true));
assertThat(
Timezone.registerProvider(new DummyProvider("dummy")),
is(false));
System.out.println(Timezone.getProviderInfo());
}
private static class DummyProvider
implements ZoneModelProvider {
private final String name;
DummyProvider(String name) {
this.name = name;
}
@Override
public Set<String> getAvailableIDs() {
return Collections.emptySet();
}
@Override
public Map<String, String> getAliases() {
return Collections.emptyMap();
}
@Override
public TransitionHistory load(String zoneID) {
return null;
}
@Override
public String getFallback() {
return "";
}
@Override
public String getName() {
return this.name;
}
@Override
public String getLocation() {
return "";
}
@Override
public String getVersion() {
return "";
}
}
}