@Test public void testNullNamespaceAlias() throws Exception { Schema s = Schema.parse("{\"type\":\"record\",\"name\":\"Z\",\"fields\":[]}"); Schema t = Schema.parse( "{\"type\":\"record\",\"name\":\"x.Y\",\"aliases\":[\".Z\"]," + "\"fields\":[]}"); Schema u = Schema.applyAliases(s, t); assertEquals("x.Y", u.getFullName()); }
@Test public void testAliases() throws Exception { String t1 = "{\"type\":\"record\",\"name\":\"a.b\",\"fields\":[" + "{\"name\":\"f\",\"type\":\"long\"}," + "{\"name\":\"h\",\"type\":\"int\"}]}"; String t2 = "{\"type\":\"record\",\"name\":\"x.y\",\"aliases\":[\"a.b\"]," + "\"fields\":[{\"name\":\"g\",\"type\":\"long\",\"aliases\":[\"f\"]}," + "{\"name\":\"h\",\"type\":\"int\"}]}"; Schema s1 = Schema.parse(t1); Schema s2 = Schema.parse(t2); assertEquals(s1.getAliases(), Collections.emptySet()); assertEquals(s1.getField("f").aliases(), Collections.emptySet()); assertEquals(s2.getAliases(), Collections.singleton("a.b")); assertEquals(s2.getField("g").aliases(), Collections.singleton("f")); Schema s3 = Schema.applyAliases(s1, s2); assertFalse(s2 == s3); assertEquals(s2, s3); t1 = "{\"type\":\"enum\",\"name\":\"a.b\"," + "\"symbols\":[\"x\"]}"; t2 = "{\"type\":\"enum\",\"name\":\"a.c\",\"aliases\":[\"b\"]," + "\"symbols\":[\"x\"]}"; s1 = Schema.parse(t1); s2 = Schema.parse(t2); s3 = Schema.applyAliases(s1, s2); assertFalse(s2 == s3); assertEquals(s2, s3); t1 = "{\"type\":\"fixed\",\"name\":\"a\"," + "\"size\": 5}"; t2 = "{\"type\":\"fixed\",\"name\":\"b\",\"aliases\":[\"a\"]," + "\"size\": 5}"; s1 = Schema.parse(t1); s2 = Schema.parse(t2); s3 = Schema.applyAliases(s1, s2); assertFalse(s2 == s3); assertEquals(s2, s3); }