http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/BufferedReaderIncludingLineEndingsTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/BufferedReaderIncludingLineEndingsTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/BufferedReaderIncludingLineEndingsTest.java deleted file mode 100644 index efc3714..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/BufferedReaderIncludingLineEndingsTest.java +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.deserializer.batch; - -import static org.junit.Assert.*; - -import java.io.ByteArrayInputStream; -import java.io.InputStreamReader; -import java.util.List; - -import org.apache.olingo.server.core.deserializer.batch.BufferedReaderIncludingLineEndings; -import org.apache.olingo.server.core.deserializer.batch.Line; -import org.junit.Test; - -public class BufferedReaderIncludingLineEndingsTest { - - - private static final String TEXT_COMBINED = "Test\r" + - "Test2\r\n" + - "Test3\n" + - "Test4\r" + - "\r" + - "\r\n" + - "\r\n" + - "Test5\n" + - "Test6\r\n" + - "Test7\n" + - "\n"; - - private static final String TEXT_SMALL = "Test\r" + - "123"; - private static final String TEXT_EMPTY = ""; - - @Test - public void testSimpleText() throws Exception { - final String TEXT = "Test"; - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals(TEXT, reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testNoText() throws Exception { - final String TEXT = ""; - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testNoBytes() throws Exception { - BufferedReaderIncludingLineEndings reader = - new BufferedReaderIncludingLineEndings(new InputStreamReader(new ByteArrayInputStream(new byte[0]))); - - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testCRLF() throws Exception { - final String TEXT = "Test\r\n" + - "Test2"; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals("Test\r\n", reader.readLine()); - assertEquals("Test2", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testLF() throws Exception { - final String TEXT = "Test\n" + - "Test2"; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals("Test\n", reader.readLine()); - assertEquals("Test2", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testCR() throws Exception { - final String TEXT = "Test\r" + - "Test2"; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals("Test\r", reader.readLine()); - assertEquals("Test2", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testCombined() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_COMBINED); - - assertEquals("Test\r", reader.readLine()); - assertEquals("Test2\r\n", reader.readLine()); - assertEquals("Test3\n", reader.readLine()); - assertEquals("Test4\r", reader.readLine()); - assertEquals("\r", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertEquals("Test5\n", reader.readLine()); - assertEquals("Test6\r\n", reader.readLine()); - assertEquals("Test7\n", reader.readLine()); - assertEquals("\n", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testCombinedBufferSizeTwo() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_COMBINED, 2); - - assertEquals("Test\r", reader.readLine()); - assertEquals("Test2\r\n", reader.readLine()); - assertEquals("Test3\n", reader.readLine()); - assertEquals("Test4\r", reader.readLine()); - assertEquals("\r", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertEquals("Test5\n", reader.readLine()); - assertEquals("Test6\r\n", reader.readLine()); - assertEquals("Test7\n", reader.readLine()); - assertEquals("\n", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testCombinedBufferSizeOne() throws Exception { - final String TEXT = "Test\r" + - "Test2\r\n" + - "Test3\n" + - "Test4\r" + - "\r" + - "\r\n" + - "\r\n" + - "Test5\n" + - "Test6\r\n" + - "Test7\n" + - "\r\n"; - - BufferedReaderIncludingLineEndings reader = create(TEXT, 1); - - assertEquals("Test\r", reader.readLine()); - assertEquals("Test2\r\n", reader.readLine()); - assertEquals("Test3\n", reader.readLine()); - assertEquals("Test4\r", reader.readLine()); - assertEquals("\r", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertEquals("Test5\n", reader.readLine()); - assertEquals("Test6\r\n", reader.readLine()); - assertEquals("Test7\n", reader.readLine()); - assertEquals("\r\n", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - - reader.close(); - } - - @Test - public void testDoubleLF() throws Exception { - final String TEXT = "Test\r" + - "\r"; - - BufferedReaderIncludingLineEndings reader = create(TEXT, 1); - - assertEquals("Test\r", reader.readLine()); - assertEquals("\r", reader.readLine()); - reader.close(); - } - - @Test - public void testSkipSimple() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_SMALL); - - assertEquals(5, reader.skip(5)); // Test\r - assertEquals("123", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testSkipBufferOne() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_SMALL, 1); - - assertEquals(5, reader.skip(5)); // Test\r - assertEquals("123", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testReadThanSkip() throws Exception { - final String TEXT = "Test\r" + - "\r" + - "123"; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals("Test\r", reader.readLine()); - assertEquals(1, reader.skip(1)); // Test\r - assertEquals("123", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testReadMoreBufferCapacityThanCharacterAvailable() throws Exception { - final String TEXT = "Foo"; - char[] buffer = new char[20]; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - assertEquals(3, reader.read(buffer, 0, 20)); - assertEquals(-1, reader.read(buffer, 0, 20)); - reader.close(); - - BufferedReaderIncludingLineEndings readerBufferOne = create(TEXT, 1); - assertEquals(3, readerBufferOne.read(buffer, 0, 20)); - assertEquals(-1, readerBufferOne.read(buffer, 0, 20)); - readerBufferOne.close(); - } - - @Test - public void testSkipZero() throws Exception { - final String TEXT = "Test\r" + - "123\r\n"; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals(0, reader.skip(0)); // Test\r - assertEquals("Test\r", reader.readLine()); - assertEquals("123\r\n", reader.readLine()); - assertNull(reader.readLine()); - assertNull(reader.readLine()); - reader.close(); - } - - @Test - public void testSkipToMuch() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_SMALL); - - assertEquals(8, reader.skip(10)); // Test\r - assertEquals(null, reader.readLine()); - reader.close(); - } - - @Test - public void testReadBufferOne() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_SMALL, 1); - - assertEquals('T', reader.read()); - assertEquals('e', reader.read()); - assertEquals('s', reader.read()); - assertEquals('t', reader.read()); - assertEquals('\r', reader.read()); - assertEquals('1', reader.read()); - assertEquals('2', reader.read()); - assertEquals('3', reader.read()); - assertEquals(-1, reader.read()); - assertEquals(-1, reader.read()); - } - - @Test - public void testReadZeroBytes() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_SMALL, 1); - - char[] buffer = new char[3]; - assertEquals(0, reader.read(buffer, 0, 0)); - assertEquals('T', reader.read()); - assertEquals(0, reader.read(buffer, 0, 0)); - assertEquals("est\r", reader.readLine()); - assertEquals("123", reader.readLine()); - - reader.close(); - } - - @Test - public void testRead() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_SMALL); - - assertEquals('T', reader.read()); - assertEquals('e', reader.read()); - assertEquals('s', reader.read()); - assertEquals('t', reader.read()); - assertEquals('\r', reader.read()); - assertEquals('1', reader.read()); - assertEquals('2', reader.read()); - assertEquals('3', reader.read()); - assertEquals(-1, reader.read()); - assertEquals(-1, reader.read()); - } - - @Test(expected = IndexOutOfBoundsException.class) - public void testFailReadBufferAndOffsetBiggerThanBuffer() throws Exception { - BufferedReaderIncludingLineEndings reader = create(""); - - final char[] buffer = new char[3]; - reader.read(buffer, 1, 3); - } - - @Test(expected = IndexOutOfBoundsException.class) - public void testFailLengthNegative() throws Exception { - final char[] buffer = new char[3]; - BufferedReaderIncludingLineEndings reader = create("123"); - - reader.read(buffer, 1, -2); - reader.close(); - } - - @Test(expected = IndexOutOfBoundsException.class) - public void testFailOffsetNegative() throws Exception { - final char[] buffer = new char[3]; - BufferedReaderIncludingLineEndings reader = create("123"); - - reader.read(buffer, -1, 2); - reader.close(); - } - - @Test - public void testReadAndReadLine() throws Exception { - final String TEXT = "Test\r" + - "bar\n" + - "123\r\n" + - "foo"; - - BufferedReaderIncludingLineEndings reader = create(TEXT); - - assertEquals('T', reader.read()); - assertEquals('e', reader.read()); - assertEquals('s', reader.read()); - assertEquals('t', reader.read()); - assertEquals("\r", reader.readLine()); - assertEquals("bar\n", reader.readLine()); - assertEquals('1', reader.read()); - assertEquals('2', reader.read()); - assertEquals("3\r\n", reader.readLine()); - assertEquals("foo", reader.readLine()); - assertEquals(null, reader.readLine()); - assertEquals(-1, reader.read()); - } - - @Test - public void testLineEqualsAndHashCode() { - Line l1 = new Line("The first line", 1); - Line l2 = new Line("The first line", 1); - Line l3 = new Line("The second line", 2); - - assertEquals(l1, l2); - assertFalse(l1.equals(l3)); - assertTrue(l1.hashCode() != l3.hashCode()); - } - - @Test(expected = IllegalArgumentException.class) - public void testSkipNegative() throws Exception { - BufferedReaderIncludingLineEndings reader = create("123"); - reader.skip(-1); - } - - @Test(expected = IllegalArgumentException.class) - public void testFailBufferSizeZero() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_EMPTY, 0); - reader.close(); - } - - @Test(expected = NullPointerException.class) - public void testInputStreamIsNull() throws Exception { - // Same behaviour like BufferedReader - BufferedReaderIncludingLineEndings reader = new BufferedReaderIncludingLineEndings(null); - reader.close(); - } - - @Test(expected = IllegalArgumentException.class) - public void testFailBufferSizeNegative() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_EMPTY, -1); - reader.close(); - } - - @Test - public void testMarkSupoorted() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_EMPTY); - - assertEquals(false, reader.markSupported()); - reader.close(); - } - - @Test(expected = Exception.class) - public void testFailMark() throws Exception { - BufferedReaderIncludingLineEndings reader = create("123"); - - reader.mark(1); - } - - @Test(expected = Exception.class) - public void testFailReset() throws Exception { - BufferedReaderIncludingLineEndings reader = create("123"); - - reader.reset(); - } - - @Test - public void testReady() throws Exception { - BufferedReaderIncludingLineEndings reader = create("123\r123"); - assertEquals(false, reader.ready()); - assertEquals("123\r", reader.readLine()); - assertEquals(true, reader.ready()); - assertEquals("123", reader.readLine()); - assertEquals(false, reader.ready()); - - reader.close(); - } - - @Test - public void testToList() throws Exception { - BufferedReaderIncludingLineEndings reader = create(TEXT_COMBINED); - List<Line> stringList = reader.toLineList(); - - assertEquals(11, stringList.size()); - assertEquals("Test\r", stringList.get(0).toString()); - assertEquals("Test2\r\n", stringList.get(1).toString()); - assertEquals("Test3\n", stringList.get(2).toString()); - assertEquals("Test4\r", stringList.get(3).toString()); - assertEquals("\r", stringList.get(4).toString()); - assertEquals("\r\n", stringList.get(5).toString()); - assertEquals("\r\n", stringList.get(6).toString()); - assertEquals("Test5\n", stringList.get(7).toString()); - assertEquals("Test6\r\n", stringList.get(8).toString()); - assertEquals("Test7\n", stringList.get(9).toString()); - assertEquals("\n", stringList.get(10).toString()); - reader.close(); - } - - private BufferedReaderIncludingLineEndings create(final String inputString) throws Exception { - return new BufferedReaderIncludingLineEndings(new InputStreamReader(new ByteArrayInputStream(inputString - .getBytes("UTF-8")))); - } - - private BufferedReaderIncludingLineEndings create(final String inputString, int bufferSize) throws Exception { - return new BufferedReaderIncludingLineEndings(new InputStreamReader(new ByteArrayInputStream(inputString - .getBytes("UTF-8"))), bufferSize); - } - -}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java deleted file mode 100644 index 282251e..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HeaderTest.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.deserializer.batch; - -import static org.junit.Assert.*; - -import java.util.Arrays; -import java.util.List; - -import org.apache.olingo.commons.api.http.HttpContentType; -import org.apache.olingo.commons.api.http.HttpHeader; -import org.apache.olingo.server.core.deserializer.batch.BatchParserCommon; -import org.apache.olingo.server.core.deserializer.batch.Header; -import org.junit.Test; - -public class HeaderTest { - - @Test - public void test() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 1); - - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(1, header.getHeaders(HttpHeader.CONTENT_TYPE).size()); - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeaders(HttpHeader.CONTENT_TYPE).get(0)); - } - - @Test - public void testNotAvailable() { - Header header = new Header(1); - - assertNull(header.getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(0, header.getHeaders(HttpHeader.CONTENT_TYPE).size()); - assertEquals("", header.getHeaderNotNull(HttpHeader.CONTENT_TYPE)); - } - - @Test - public void testCaseInsensitive() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 1); - - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeader("cOnTenT-TyPE")); - assertEquals(1, header.getHeaders("cOnTenT-TyPE").size()); - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeaders("cOnTenT-TyPE").get(0)); - } - - @Test - public void testDuplicatedAdd() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 2); - - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(1, header.getHeaders(HttpHeader.CONTENT_TYPE).size()); - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeaders(HttpHeader.CONTENT_TYPE).get(0)); - } - - @Test - public void testMatcher() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED + ";boundary=123", 1); - - assertTrue(header.isHeaderMatching(HttpHeader.CONTENT_TYPE, BatchParserCommon.PATTERN_MULTIPART_BOUNDARY)); - } - - @Test - public void testFieldName() { - Header header = new Header(0); - header.addHeader("MyFieldNamE", "myValue", 1); - - assertEquals("MyFieldNamE", header.getHeaderField("myfieldname").getFieldName()); - assertEquals("MyFieldNamE", header.toSingleMap().keySet().toArray(new String[0])[0]); - assertEquals("MyFieldNamE", header.toMultiMap().keySet().toArray(new String[0])[0]); - - assertEquals("myValue", header.toMultiMap().get("MyFieldNamE").get(0)); - assertEquals("myValue", header.toSingleMap().get("MyFieldNamE")); - } - - @Test - public void testDeepCopy() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED + ";boundary=123", 1); - - Header copy = header.clone(); - assertEquals(header.getHeaders(HttpHeader.CONTENT_TYPE), copy.getHeaders(HttpHeader.CONTENT_TYPE)); - assertEquals(header.getHeader(HttpHeader.CONTENT_TYPE), copy.getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(header.getHeaderField(HttpHeader.CONTENT_TYPE), copy.getHeaderField(HttpHeader.CONTENT_TYPE)); - - assertTrue(header.getHeaders(HttpHeader.CONTENT_TYPE) != copy.getHeaders(HttpHeader.CONTENT_TYPE)); - assertTrue(header.getHeaderField(HttpHeader.CONTENT_TYPE) != copy.getHeaderField(HttpHeader.CONTENT_TYPE)); - } - - @Test - public void testMatcherNoHeader() { - Header header = new Header(1); - - assertFalse(header.isHeaderMatching(HttpHeader.CONTENT_TYPE, BatchParserCommon.PATTERN_MULTIPART_BOUNDARY)); - } - - @Test - public void testDuplicatedAddList() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 1); - header.addHeader(HttpHeader.CONTENT_TYPE, Arrays.asList(new String[] { HttpContentType.MULTIPART_MIXED, - HttpContentType.APPLICATION_ATOM_SVC }), 2); - - assertEquals(HttpContentType.MULTIPART_MIXED + ", " + HttpContentType.APPLICATION_ATOM_SVC, header - .getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(2, header.getHeaders(HttpHeader.CONTENT_TYPE).size()); - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeaders(HttpHeader.CONTENT_TYPE).get(0)); - assertEquals(HttpContentType.APPLICATION_ATOM_SVC, header.getHeaders(HttpHeader.CONTENT_TYPE).get(1)); - } - - @Test - public void testRemove() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 1); - header.removeHeader(HttpHeader.CONTENT_TYPE); - - assertNull(header.getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(0, header.getHeaders(HttpHeader.CONTENT_TYPE).size()); - } - - @Test - public void testMultipleValues() { - Header header = new Header(1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.MULTIPART_MIXED, 1); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.APPLICATION_ATOM_SVC, 2); - header.addHeader(HttpHeader.CONTENT_TYPE, HttpContentType.APPLICATION_ATOM_XML, 3); - - final String fullHeaderString = - HttpContentType.MULTIPART_MIXED + ", " + HttpContentType.APPLICATION_ATOM_SVC + ", " - + HttpContentType.APPLICATION_ATOM_XML; - - assertEquals(fullHeaderString, header.getHeader(HttpHeader.CONTENT_TYPE)); - assertEquals(3, header.getHeaders(HttpHeader.CONTENT_TYPE).size()); - assertEquals(HttpContentType.MULTIPART_MIXED, header.getHeaders(HttpHeader.CONTENT_TYPE).get(0)); - assertEquals(HttpContentType.APPLICATION_ATOM_SVC, header.getHeaders(HttpHeader.CONTENT_TYPE).get(1)); - assertEquals(HttpContentType.APPLICATION_ATOM_XML, header.getHeaders(HttpHeader.CONTENT_TYPE).get(2)); - } - - @Test - public void testSplitValues() { - final String values = "abc, def,123,77, 99, ysd"; - List<String> splittedValues = Header.splitValuesByComma(values); - - assertEquals(6, splittedValues.size()); - assertEquals("abc", splittedValues.get(0)); - assertEquals("def", splittedValues.get(1)); - assertEquals("123", splittedValues.get(2)); - assertEquals("77", splittedValues.get(3)); - assertEquals("99", splittedValues.get(4)); - assertEquals("ysd", splittedValues.get(5)); - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HttpRequestStatusLineTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HttpRequestStatusLineTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HttpRequestStatusLineTest.java deleted file mode 100644 index 5ea7cc8..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/batch/HttpRequestStatusLineTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.deserializer.batch; - -import static org.junit.Assert.*; - -import org.apache.olingo.commons.api.http.HttpMethod; -import org.apache.olingo.server.api.batch.exception.BatchDeserializerException; -import org.apache.olingo.server.api.batch.exception.BatchDeserializerException.MessageKeys; -import org.junit.Test; - -public class HttpRequestStatusLineTest { - - private static final String HTTP_VERSION = "HTTP/1.1"; - private static final String SPACE = " "; - private String baseUri = "http://localhost/odata"; - private String serviceResolutionUri = ""; - - @Test - public void testAbsolute() throws BatchDeserializerException { - final HttpRequestStatusLine line = parse("http://localhost/odata/Employee?$top=2"); - assertEquals("$top=2", line.getRawQueryPath()); - assertEquals("/Employee", line.getRawODataPath()); - assertEquals("http://localhost/odata/Employee?$top=2", line.getRawRequestUri()); - assertEquals(baseUri, line.getRawBaseUri()); - assertEquals(serviceResolutionUri, line.getRawServiceResolutionUri()); - } - - @Test - public void testAbsoluteWithRelativePath() throws BatchDeserializerException { - final HttpRequestStatusLine line = parse("http://localhost/odata/../../Employee?$top=2"); - assertEquals("/../../Employee", line.getRawODataPath()); - assertEquals("$top=2", line.getRawQueryPath()); - assertEquals("http://localhost/odata/../../Employee?$top=2", line.getRawRequestUri()); - assertEquals(baseUri, line.getRawBaseUri()); - assertEquals(serviceResolutionUri, line.getRawServiceResolutionUri()); - } - - @Test - public void testRelativeWithDots() throws BatchDeserializerException { - final HttpRequestStatusLine line = parse("../../Employee?$top=2"); - assertEquals("/../../Employee", line.getRawODataPath()); - assertEquals("$top=2", line.getRawQueryPath()); - assertEquals("http://localhost/odata/../../Employee?$top=2", line.getRawRequestUri()); - assertEquals(baseUri, line.getRawBaseUri()); - assertEquals(serviceResolutionUri, line.getRawServiceResolutionUri()); - } - - @Test - public void testRelative() throws BatchDeserializerException { - final HttpRequestStatusLine line = parse("Employee?$top=2"); - assertEquals("$top=2", line.getRawQueryPath()); - assertEquals("/Employee", line.getRawODataPath()); - assertEquals("http://localhost/odata/Employee?$top=2", line.getRawRequestUri()); - assertEquals(baseUri, line.getRawBaseUri()); - assertEquals(serviceResolutionUri, line.getRawServiceResolutionUri()); - } - - @Test - public void testRelativeMultipleSegements() throws BatchDeserializerException { - final HttpRequestStatusLine line = parse("Employee/Manager/EmployeeName?$top=2"); - assertEquals("$top=2", line.getRawQueryPath()); - assertEquals("/Employee/Manager/EmployeeName", line.getRawODataPath()); - assertEquals("http://localhost/odata/Employee/Manager/EmployeeName?$top=2", line.getRawRequestUri()); - assertEquals(baseUri, line.getRawBaseUri()); - assertEquals(serviceResolutionUri, line.getRawServiceResolutionUri()); - } - - @Test - public void testOtherBaseUri() throws BatchDeserializerException { - parseFail("http://otherhost/odata/Employee?$top=2", MessageKeys.INVALID_BASE_URI); - } - - @Test - public void testInvalidRelative() throws BatchDeserializerException { - parseFail("/Employee?$top=2", MessageKeys.INVALID_URI); - } - - HttpRequestStatusLine parse(final String uri) throws BatchDeserializerException { - Line statusline = new Line(HttpMethod.GET.toString().toUpperCase() + SPACE + uri + SPACE + HTTP_VERSION, 0); - return new HttpRequestStatusLine(statusline, baseUri, serviceResolutionUri); - } - - void parseFail(final String uri, MessageKeys messageKey) { - try { - parse(uri); - fail("Expceted exception"); - } catch (BatchDeserializerException e) { - assertEquals(messageKey, e.getMessageKey()); - } - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java deleted file mode 100644 index f3e22ef..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerBasicTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.deserializer.json; - -import static org.junit.Assert.assertNotNull; - -import org.apache.olingo.commons.api.format.ODataFormat; -import org.apache.olingo.server.api.OData; -import org.apache.olingo.server.api.deserializer.ODataDeserializer; -import org.junit.Test; - -public class ODataJsonDeserializerBasicTest { - - @Test - public void checkSupportedJsonFormats() throws Exception { - ODataDeserializer deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON); - assertNotNull(deserializer); - deserializer = null; - - deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON_NO_METADATA); - assertNotNull(deserializer); - deserializer = null; - - deserializer = OData.newInstance().createDeserializer(ODataFormat.JSON_FULL_METADATA); - assertNotNull(deserializer); - deserializer = null; - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java deleted file mode 100644 index f48f05c..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.edm.provider; - -import org.apache.olingo.commons.api.edm.EdmAction; -import org.apache.olingo.commons.api.edm.EdmEntitySet; -import org.apache.olingo.commons.api.edm.EdmException; -import org.apache.olingo.commons.api.edm.EdmParameter; -import org.apache.olingo.commons.api.edm.EdmSingleton; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.api.edm.constants.EdmTypeKind; -import org.apache.olingo.server.api.edm.provider.Action; -import org.apache.olingo.server.api.edm.provider.EntitySetPath; -import org.apache.olingo.server.api.edm.provider.Parameter; -import org.apache.olingo.server.api.edm.provider.ReturnType; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class EdmActionImplTest { - - private EdmAction actionImpl1; - private EdmAction actionImpl2; - private EdmAction actionImpl3; - - @Before - public void setup() { - EdmProviderImpl provider = mock(EdmProviderImpl.class); - List<Parameter> parameters = new ArrayList<Parameter>(); - parameters.add(new Parameter().setName("Id").setType(new FullQualifiedName("namespace", "name"))); - FullQualifiedName action1Name = new FullQualifiedName("namespace", "action1"); - Action action1 = new Action().setName("action1").setBound(true).setParameters(parameters); - actionImpl1 = EdmActionImpl.getInstance(provider, action1Name, action1); - - FullQualifiedName action2Name = new FullQualifiedName("namespace", "action2"); - FullQualifiedName returnTypeName = new FullQualifiedName("Edm", "String"); - ReturnType returnType = new ReturnType().setType(returnTypeName); - Action action2 = new Action().setName("action2").setParameters(parameters).setReturnType(returnType); - actionImpl2 = EdmActionImpl.getInstance(provider, action2Name, action2); - - FullQualifiedName action3Name = new FullQualifiedName("namespace", "action3"); - EntitySetPath entitySetPath = new EntitySetPath().setBindingParameter("Id").setPath("path"); - Action action3 = - new Action().setName("action3").setParameters(parameters).setReturnType(returnType).setEntitySetPath( - entitySetPath); - actionImpl3 = EdmActionImpl.getInstance(provider, action3Name, action3); - } - - @Test - public void action1BasicMethodCalls() { - assertTrue(actionImpl1.isBound()); - assertEquals(EdmTypeKind.ACTION, actionImpl1.getKind()); - assertNull(actionImpl1.getReturnType()); - // assertEquals("returnName", actionImpl1.getReturnType().getType().getName()); - assertNotNull(actionImpl1.getParameterNames()); - - for (String name : actionImpl1.getParameterNames()) { - EdmParameter parameter = actionImpl1.getParameter(name); - assertNotNull(parameter); - assertEquals(name, parameter.getName()); - } - - assertNull(actionImpl1.getReturnedEntitySet(null)); - assertNull(actionImpl1.getReturnedEntitySet(mock(EdmEntitySet.class))); - } - - @Test - public void action2BasicMethodCalls() { - assertFalse(actionImpl2.isBound()); - assertEquals(EdmTypeKind.ACTION, actionImpl2.getKind()); - assertEquals("String", actionImpl2.getReturnType().getType().getName()); - assertNotNull(actionImpl2.getParameterNames()); - - for (String name : actionImpl2.getParameterNames()) { - EdmParameter parameter = actionImpl2.getParameter(name); - assertNotNull(parameter); - assertEquals(name, parameter.getName()); - } - - assertNull(actionImpl2.getReturnedEntitySet(null)); - assertNull(actionImpl2.getReturnedEntitySet(mock(EdmEntitySet.class))); - } - - @Test - public void action3BasicMethodCalls() { - assertFalse(actionImpl3.isBound()); - assertEquals(EdmTypeKind.ACTION, actionImpl3.getKind()); - assertEquals("String", actionImpl3.getReturnType().getType().getName()); - assertNotNull(actionImpl3.getParameterNames()); - - for (String name : actionImpl3.getParameterNames()) { - EdmParameter parameter = actionImpl3.getParameter(name); - assertNotNull(parameter); - assertEquals(name, parameter.getName()); - } - - actionImpl3.getReturnedEntitySet(null); - } - - @Test - public void action3getReturnedEntitySetWithEntitySet() { - EdmEntitySet set = mock(EdmEntitySet.class); - when(set.getRelatedBindingTarget("path")).thenReturn(set); - - EdmEntitySet returnedEntitySet = actionImpl3.getReturnedEntitySet(set); - - assertEquals(set, returnedEntitySet); - } - - @Test(expected = EdmException.class) - public void action3getReturnedEntitySetWithNullReturn() { - EdmEntitySet set = mock(EdmEntitySet.class); - when(set.getRelatedBindingTarget("path")).thenReturn(null); - - actionImpl3.getReturnedEntitySet(set); - fail(); - } - - @Test(expected = EdmException.class) - public void action3getReturnedEntitySetWithSingleton() { - EdmSingleton singleton = mock(EdmSingleton.class); - EdmEntitySet set = mock(EdmEntitySet.class); - when(set.getRelatedBindingTarget("path")).thenReturn(singleton); - - actionImpl3.getReturnedEntitySet(set); - fail(); - } - -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java deleted file mode 100644 index 1b4f82c..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.edm.provider; - -import org.apache.olingo.commons.api.edm.EdmAction; -import org.apache.olingo.commons.api.edm.EdmActionImport; -import org.apache.olingo.commons.api.edm.EdmEntityContainer; -import org.apache.olingo.commons.api.edm.EdmEntitySet; -import org.apache.olingo.commons.api.edm.EdmException; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.api.edm.Target; -import org.apache.olingo.server.api.edm.provider.ActionImport; -import org.junit.Before; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class EdmActionImportImplTest { - - EdmEntityContainer container; - - EdmActionImport actionImport; - - private EdmAction action; - - private EdmEntitySet entitySet; - - @Before - public void setup() { - FullQualifiedName actionFqn = new FullQualifiedName("namespace", "actionName"); - FullQualifiedName entityContainerFqn = new FullQualifiedName("namespace", "containerName"); - Target target = new Target().setEntityContainer(entityContainerFqn).setTargetName("entitySetName"); - ActionImport providerActionImport = - new ActionImport().setName("actionImportName").setAction(actionFqn).setEntitySet(target); - - EdmProviderImpl edm = mock(EdmProviderImpl.class); - container = mock(EdmEntityContainer.class); - when(edm.getEntityContainer(entityContainerFqn)).thenReturn(container); - action = mock(EdmAction.class); - when(edm.getUnboundAction(actionFqn)).thenReturn(action); - - entitySet = mock(EdmEntitySet.class); - when(container.getEntitySet("entitySetName")).thenReturn(entitySet); - actionImport = new EdmActionImportImpl(edm, container, providerActionImport); - } - - @Test - public void simpleActionTest() { - assertEquals("actionImportName", actionImport.getName()); - assertTrue(container == actionImport.getEntityContainer()); - assertTrue(action == actionImport.getUnboundAction()); - } - - @Test - public void getReturnedEntitySet() { - EdmEntitySet returnedEntitySet = actionImport.getReturnedEntitySet(); - assertNotNull(returnedEntitySet); - assertTrue(returnedEntitySet == entitySet); - - // Chaching - assertTrue(returnedEntitySet == actionImport.getReturnedEntitySet()); - } - - @Test(expected = EdmException.class) - public void getReturnedEntitySetNonExistingContainer() { - Target target = new Target(); - ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target); - EdmActionImport actionImport = - new EdmActionImportImpl(mock(EdmProviderImpl.class), container, providerActionImport); - actionImport.getReturnedEntitySet(); - } - - @Test(expected = EdmException.class) - public void getReturnedEntitySetNonExistingEntitySet() { - Target target = new Target(); - ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target); - EdmProviderImpl edm = mock(EdmProviderImpl.class); - when(edm.getEntityContainer(null)).thenReturn(container); - EdmActionImport actionImport = new EdmActionImportImpl(edm, container, providerActionImport); - actionImport.getReturnedEntitySet(); - } - -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java deleted file mode 100644 index 8a66230..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.edm.provider; - -import org.apache.olingo.commons.api.edm.EdmComplexType; -import org.apache.olingo.commons.api.edm.EdmElement; -import org.apache.olingo.commons.api.edm.EdmException; -import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.server.api.edm.provider.ComplexType; -import org.apache.olingo.server.api.edm.provider.EdmProvider; -import org.apache.olingo.server.api.edm.provider.NavigationProperty; -import org.apache.olingo.server.api.edm.provider.Property; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class EdmComplexTypeImplTest { - - private EdmComplexType baseType; - - private EdmComplexType type; - - @Before - public void setupTypes() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - - FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName"); - ComplexType baseComplexType = new ComplexType(); - List<Property> baseProperties = new ArrayList<Property>(); - baseProperties.add(new Property().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>(); - baseNavigationProperties.add(new NavigationProperty().setName("nav1")); - baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties) - .setNavigationProperties(baseNavigationProperties); - when(provider.getComplexType(baseName)).thenReturn(baseComplexType); - - baseType = EdmComplexTypeImpl.getInstance(edm, baseName, baseComplexType); - - FullQualifiedName name = new FullQualifiedName("namespace", "typeName"); - ComplexType complexType = new ComplexType().setBaseType(baseName); - List<Property> properties = new ArrayList<Property>(); - properties.add(new Property().setName("prop2").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>(); - navigationProperties.add(new NavigationProperty().setName("nav2")); - complexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(properties) - .setNavigationProperties(navigationProperties); - when(provider.getComplexType(name)).thenReturn(complexType); - - type = EdmComplexTypeImpl.getInstance(edm, name, complexType); - } - - @Test - public void noPropertiesAndNoNavPropertiesMustNotResultInException() { - EdmProviderImpl edm = mock(EdmProviderImpl.class); - ComplexType complexType = new ComplexType().setName("n"); - EdmComplexTypeImpl.getInstance(edm, new FullQualifiedName("n", "n"), complexType); - } - - @Test - public void typeMustBeCompatibletoBasetype() { - assertTrue(type.compatibleTo(baseType)); - } - - @Test - public void baseTypeMustNotBeCompatibleToType() { - assertFalse(baseType.compatibleTo(type)); - } - - @Test(expected = EdmException.class) - public void nullForCompatibleTypeMustResultInEdmException() { - assertFalse(type.compatibleTo(null)); - } - - @Test - public void getBaseType() { - assertNull(baseType.getBaseType()); - assertNotNull(type.getBaseType()); - } - - @Test - public void propertiesBehaviour() { - List<String> propertyNames = baseType.getPropertyNames(); - assertEquals(1, propertyNames.size()); - assertEquals("prop1", baseType.getProperty("prop1").getName()); - } - - @Test - public void propertiesBehaviourWithBaseType() { - List<String> propertyNames = type.getPropertyNames(); - assertEquals(2, propertyNames.size()); - assertEquals("prop1", type.getProperty("prop1").getName()); - assertEquals("prop2", type.getProperty("prop2").getName()); - } - - @Test - public void navigationPropertiesBehaviour() { - List<String> navigationPropertyNames = baseType.getNavigationPropertyNames(); - assertEquals(1, navigationPropertyNames.size()); - assertEquals("nav1", baseType.getProperty("nav1").getName()); - } - - @Test - public void navigationPropertiesBehaviourWithBaseType() { - List<String> navigationPropertyNames = type.getNavigationPropertyNames(); - assertEquals(2, navigationPropertyNames.size()); - assertEquals("nav1", type.getProperty("nav1").getName()); - assertEquals("nav2", type.getProperty("nav2").getName()); - } - - @Test - public void propertyCaching() { - EdmElement property = type.getProperty("prop1"); - assertTrue(property == type.getProperty("prop1")); - - property = type.getProperty("prop2"); - assertTrue(property == type.getProperty("prop2")); - - property = type.getProperty("nav1"); - assertTrue(property == type.getProperty("nav1")); - - property = type.getProperty("nav2"); - assertTrue(property == type.getProperty("nav2")); - } - - @Test(expected = EdmException.class) - public void nonExistingBaseType() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - FullQualifiedName typeWithNonexistingBaseTypeName = new FullQualifiedName("namespace", "typeName"); - ComplexType complexTypeForNonexistingBaseType = - new ComplexType().setBaseType(new FullQualifiedName("wrong", "wrong")); - complexTypeForNonexistingBaseType.setName("typeName"); - when(provider.getComplexType(typeWithNonexistingBaseTypeName)).thenReturn(complexTypeForNonexistingBaseType); - EdmComplexTypeImpl instance = - EdmComplexTypeImpl.getInstance(edm, typeWithNonexistingBaseTypeName, complexTypeForNonexistingBaseType); - instance.getBaseType(); - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java deleted file mode 100644 index 0889106..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.edm.provider; - -import org.apache.olingo.commons.api.ODataException; -import org.apache.olingo.commons.api.edm.EdmActionImport; -import org.apache.olingo.commons.api.edm.EdmEntityContainer; -import org.apache.olingo.commons.api.edm.EdmEntitySet; -import org.apache.olingo.commons.api.edm.EdmException; -import org.apache.olingo.commons.api.edm.EdmFunctionImport; -import org.apache.olingo.commons.api.edm.EdmSingleton; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.server.api.edm.provider.ActionImport; -import org.apache.olingo.server.api.edm.provider.EdmProvider; -import org.apache.olingo.server.api.edm.provider.EntityContainer; -import org.apache.olingo.server.api.edm.provider.EntityContainerInfo; -import org.apache.olingo.server.api.edm.provider.EntitySet; -import org.apache.olingo.server.api.edm.provider.FunctionImport; -import org.apache.olingo.server.api.edm.provider.Singleton; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class EdmEntityContainerImplTest { - - EdmEntityContainer container; - - @Before - public void setup() { - EdmProvider provider = new CustomProvider(); - EdmProviderImpl edm = new EdmProviderImpl(provider); - EntityContainerInfo entityContainerInfo = - new EntityContainerInfo().setContainerName(new FullQualifiedName("space", "name")); - container = new EdmEntityContainerImpl(edm, provider, entityContainerInfo); - } - - @Test - public void getAllEntitySetInitial() { - List<EdmEntitySet> entitySets = container.getEntitySets(); - assertNotNull(entitySets); - assertEquals(2, entitySets.size()); - } - - @Test - public void getAllEntitySetsAfterOneWasAlreadyLoaded() { - EdmEntitySet entitySet = container.getEntitySet("entitySetName"); - List<EdmEntitySet> entitySets = container.getEntitySets(); - assertNotNull(entitySets); - assertEquals(2, entitySets.size()); - boolean contained = false; - for (EdmEntitySet es : entitySets) { - // Already loaded entity set must be the same - if (es.getName().equals("entitySetName")) { - assertTrue(entitySet == es); - contained = true; - } - } - if (!contained) { - fail("Should have found entity set in this list."); - } - } - - @Test - public void getAllSingletonsInitial() { - List<EdmSingleton> singletons = container.getSingletons(); - assertNotNull(singletons); - assertEquals(2, singletons.size()); - } - - @Test - public void getAllSingletonsAfterOneWasAlreadyLoaded() { - EdmSingleton singleton = container.getSingleton("singletonName"); - List<EdmSingleton> singletons = container.getSingletons(); - assertNotNull(singletons); - assertEquals(2, singletons.size()); - boolean contained = false; - for (EdmSingleton s : singletons) { - // Already loaded singleton must be the same - if (s.getName().equals("singletonName")) { - assertTrue(singleton == s); - contained = true; - } - } - if (!contained) { - fail("Should have found singleton in this list."); - } - } - - @Test - public void getAllActionImportsInitial() { - List<EdmActionImport> actionImports = container.getActionImports(); - assertNotNull(actionImports); - assertEquals(2, actionImports.size()); - } - - @Test - public void getAllActionImportsAfterOneWasAlreadyLoaded() { - EdmActionImport actionImport = container.getActionImport("actionImportName"); - List<EdmActionImport> actionImports = container.getActionImports(); - assertNotNull(actionImports); - assertEquals(2, actionImports.size()); - boolean contained = false; - for (EdmActionImport ai : actionImports) { - // Already loaded action import must be the same - if (ai.getName().equals("actionImportName")) { - assertTrue(actionImport == ai); - contained = true; - } - } - if (!contained) { - fail("Should have found action import in this list."); - } - } - - @Test - public void getAllFunctionImportsInitial() { - List<EdmFunctionImport> functionImports = container.getFunctionImports(); - assertNotNull(functionImports); - assertEquals(2, functionImports.size()); - } - - @Test - public void getAllFunctionImportsAfterOneWasAlreadyLoaded() { - EdmFunctionImport functionImport = container.getFunctionImport("functionImportName"); - List<EdmFunctionImport> functionImports = container.getFunctionImports(); - assertNotNull(functionImports); - assertEquals(2, functionImports.size()); - boolean contained = false; - for (EdmFunctionImport fi : functionImports) { - // Already loaded function import must be the same - if (fi.getName().equals("functionImportName")) { - assertTrue(functionImport == fi); - contained = true; - } - } - if (!contained) { - fail("Should have found function import in this list."); - } - } - - @Test - public void checkEdmExceptionConversion() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - FullQualifiedName containerName = new FullQualifiedName("space", "name"); - when(provider.getEntitySet(containerName, null)).thenThrow(new ODataException("msg")); - when(provider.getSingleton(containerName, null)).thenThrow(new ODataException("msg")); - when(provider.getFunctionImport(containerName, null)).thenThrow(new ODataException("msg")); - when(provider.getActionImport(containerName, null)).thenThrow(new ODataException("msg")); - EdmProviderImpl edm = new EdmProviderImpl(provider); - EntityContainerInfo entityContainerInfo = - new EntityContainerInfo().setContainerName(containerName); - EdmEntityContainer container = new EdmEntityContainerImpl(edm, provider, entityContainerInfo); - boolean thrown = false; - try { - container.getEntitySet(null); - } catch (EdmException e) { - thrown = true; - } - if (!thrown) { - fail("Expected EdmException not thrown"); - } - try { - container.getSingleton(null); - } catch (EdmException e) { - thrown = true; - } - if (!thrown) { - fail("Expected EdmException not thrown"); - } - try { - container.getActionImport(null); - } catch (EdmException e) { - thrown = true; - } - if (!thrown) { - fail("Expected EdmException not thrown"); - } - try { - container.getFunctionImport(null); - } catch (EdmException e) { - thrown = true; - } - if (!thrown) { - fail("Expected EdmException not thrown"); - } - } - - @Test - public void simpleContainerGetter() { - assertEquals("name", container.getName()); - assertEquals("space", container.getNamespace()); - } - - @Test - public void getExistingFunctionImport() { - EdmFunctionImport functionImport = container.getFunctionImport("functionImportName"); - assertNotNull(functionImport); - assertEquals("functionImportName", functionImport.getName()); - // Caching - assertTrue(functionImport == container.getFunctionImport("functionImportName")); - } - - @Test - public void getNonExistingFunctionImport() { - assertNull(container.getFunctionImport(null)); - } - - @Test - public void getExistingActionImport() { - EdmActionImport actionImport = container.getActionImport("actionImportName"); - assertNotNull(actionImport); - assertEquals("actionImportName", actionImport.getName()); - // Caching - assertTrue(actionImport == container.getActionImport("actionImportName")); - } - - @Test - public void getNonExistingActionImport() { - assertNull(container.getActionImport(null)); - } - - @Test - public void getExistingSingleton() { - EdmSingleton singleton = container.getSingleton("singletonName"); - assertNotNull(singleton); - assertEquals("singletonName", singleton.getName()); - // Caching - assertTrue(singleton == container.getSingleton("singletonName")); - } - - @Test - public void getNonExistingSingleton() { - assertNull(container.getSingleton(null)); - } - - @Test - public void getExistingEntitySet() { - EdmEntitySet entitySet = container.getEntitySet("entitySetName"); - assertNotNull(entitySet); - assertEquals("entitySetName", entitySet.getName()); - // Caching - assertTrue(entitySet == container.getEntitySet("entitySetName")); - } - - @Test - public void getNonExistingEntitySet() { - assertNull(container.getEntitySet(null)); - } - - private class CustomProvider extends EdmProvider { - @Override - public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName) - throws ODataException { - if (entitySetName != null) { - return new EntitySet().setName("entitySetName"); - } - return null; - } - - @Override - public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName) - throws ODataException { - if (singletonName != null) { - return new Singleton().setName("singletonName"); - } - return null; - } - - @Override - public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName) - throws ODataException { - if (actionImportName != null) { - return new ActionImport().setName("actionImportName"); - } - return null; - } - - @Override - public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName) - throws ODataException { - if (functionImportName != null) { - return new FunctionImport().setName("functionImportName"); - } - return null; - } - - @Override - public EntityContainer getEntityContainer() throws ODataException { - EntityContainer container = new EntityContainer(); - List<EntitySet> entitySets = new ArrayList<EntitySet>(); - entitySets.add(new EntitySet().setName("entitySetName")); - entitySets.add(new EntitySet().setName("entitySetName2")); - container.setEntitySets(entitySets); - - List<Singleton> singletons = new ArrayList<Singleton>(); - singletons.add(new Singleton().setName("singletonName")); - singletons.add(new Singleton().setName("singletonName2")); - container.setSingletons(singletons); - - List<ActionImport> actionImports = new ArrayList<ActionImport>(); - actionImports.add(new ActionImport().setName("actionImportName")); - actionImports.add(new ActionImport().setName("actionImportName2")); - container.setActionImports(actionImports); - - List<FunctionImport> functionImports = new ArrayList<FunctionImport>(); - functionImports.add(new FunctionImport().setName("functionImportName")); - functionImports.add(new FunctionImport().setName("functionImportName2")); - container.setFunctionImports(functionImports); - - return container; - } - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java deleted file mode 100644 index 539e486..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.edm.provider; - -import org.apache.olingo.commons.api.edm.EdmBindingTarget; -import org.apache.olingo.commons.api.edm.EdmEntityContainer; -import org.apache.olingo.commons.api.edm.EdmEntitySet; -import org.apache.olingo.commons.api.edm.EdmEntityType; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.api.edm.Target; -import org.apache.olingo.server.api.edm.provider.EdmProvider; -import org.apache.olingo.server.api.edm.provider.EntityContainerInfo; -import org.apache.olingo.server.api.edm.provider.EntitySet; -import org.apache.olingo.server.api.edm.provider.EntityType; -import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding; -import org.apache.olingo.server.api.edm.provider.PropertyRef; -import org.junit.Test; - -import java.util.Arrays; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class EdmEntitySetImplTest { - - @Test - public void entitySet() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - - final FullQualifiedName typeName = new FullQualifiedName("ns", "entityType"); - final EntityType entityTypeProvider = new EntityType() - .setName(typeName.getName()) - .setKey(Arrays.asList(new PropertyRef().setPropertyName("Id"))); - when(provider.getEntityType(typeName)).thenReturn(entityTypeProvider); - - final FullQualifiedName containerName = new FullQualifiedName("ns", "container"); - final EntityContainerInfo containerInfo = new EntityContainerInfo().setContainerName(containerName); - when(provider.getEntityContainerInfo(containerName)).thenReturn(containerInfo); - final EdmEntityContainer entityContainer = new EdmEntityContainerImpl(edm, provider, containerInfo); - - final String entitySetName = "entitySet"; - final EntitySet entitySetProvider = new EntitySet() - .setName(entitySetName) - .setType(typeName) - .setIncludeInServiceDocument(true) - .setNavigationPropertyBindings(Arrays.asList( - new NavigationPropertyBinding().setPath("path") - .setTarget(new Target().setEntityContainer(containerName).setTargetName(entitySetName)))); - when(provider.getEntitySet(containerName, entitySetName)).thenReturn(entitySetProvider); - - final EdmEntitySet entitySet = new EdmEntitySetImpl(edm, entityContainer, entitySetProvider); - assertEquals(entitySetName, entityContainer.getEntitySet(entitySetName).getName()); - assertEquals(entitySetName, entitySet.getName()); - final EdmEntityType entityType = entitySet.getEntityType(); - assertEquals(typeName.getNamespace(), entityType.getNamespace()); - assertEquals(typeName.getName(), entityType.getName()); - assertEquals(entityContainer, entitySet.getEntityContainer()); - assertNull(entitySet.getRelatedBindingTarget(null)); - final EdmBindingTarget target = entitySet.getRelatedBindingTarget("path"); - assertEquals(entitySetName, target.getName()); - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/f7a7b484/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java ---------------------------------------------------------------------- diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java deleted file mode 100644 index 42af891..0000000 --- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java +++ /dev/null @@ -1,383 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.olingo.server.core.edm.provider; - -import org.apache.olingo.commons.api.edm.EdmComplexType; -import org.apache.olingo.commons.api.edm.EdmElement; -import org.apache.olingo.commons.api.edm.EdmEntityType; -import org.apache.olingo.commons.api.edm.EdmException; -import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef; -import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; -import org.apache.olingo.commons.api.edm.EdmProperty; -import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.server.api.edm.provider.ComplexType; -import org.apache.olingo.server.api.edm.provider.EdmProvider; -import org.apache.olingo.server.api.edm.provider.EntityType; -import org.apache.olingo.server.api.edm.provider.NavigationProperty; -import org.apache.olingo.server.api.edm.provider.Property; -import org.apache.olingo.server.api.edm.provider.PropertyRef; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class EdmEntityTypeImplTest { - - private EdmEntityType baseType; - - private EdmEntityType typeWithBaseType; - - private EdmEntityType typeWithComplexKey; - - @Before - public void setupTypes() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - - FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName"); - EntityType baseType = new EntityType(); - baseType.setName(baseName.getName()); - List<Property> properties = new ArrayList<Property>(); - properties.add(new Property().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - properties.add(new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - baseType.setProperties(properties); - List<PropertyRef> key = new ArrayList<PropertyRef>(); - key.add(new PropertyRef().setPropertyName("Id")); - baseType.setKey(key); - List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>(); - navigationProperties.add(new NavigationProperty().setName("nav1")); - baseType.setNavigationProperties(navigationProperties); - when(provider.getEntityType(baseName)).thenReturn(baseType); - - this.baseType = EdmEntityTypeImpl.getInstance(edm, baseName, baseType); - - FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName"); - EntityType type = new EntityType(); - type.setName(typeName.getName()); - type.setBaseType(baseName); - List<Property> typeProperties = new ArrayList<Property>(); - typeProperties.add(new Property().setName("address").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - typeProperties.add(new Property().setName("email").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - type.setProperties(typeProperties); - List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>(); - typeNavigationProperties.add(new NavigationProperty().setName("nav2")); - type.setNavigationProperties(typeNavigationProperties); - when(provider.getEntityType(typeName)).thenReturn(type); - - typeWithBaseType = EdmEntityTypeImpl.getInstance(edm, typeName, type); - - FullQualifiedName typeWithComplexKeyName = new FullQualifiedName("namespace", "typeName"); - EntityType typeWithComplexKeyProvider = new EntityType(); - typeWithComplexKeyProvider.setName(typeWithComplexKeyName.getName()); - List<Property> typeWithComplexKeyProperties = new ArrayList<Property>(); - typeWithComplexKeyProperties.add(new Property().setName("Id").setType( - EdmPrimitiveTypeKind.String.getFullQualifiedName())); - - List<Property> complexTypeProperties = new ArrayList<Property>(); - complexTypeProperties.add(new Property().setName("ComplexPropName").setType( - EdmPrimitiveTypeKind.String.getFullQualifiedName())); - FullQualifiedName complexTypeName = new FullQualifiedName("namespace", "complexTypeName"); - when(provider.getComplexType(complexTypeName)).thenReturn( - new ComplexType().setName("complexTypeName").setProperties(complexTypeProperties)); - - typeWithComplexKeyProperties.add(new Property().setName("Comp").setType(complexTypeName)); - typeWithComplexKeyProvider.setProperties(typeWithComplexKeyProperties); - List<PropertyRef> keyForTypeWithComplexKey = new ArrayList<PropertyRef>(); - keyForTypeWithComplexKey.add(new PropertyRef().setPropertyName("Id")); - keyForTypeWithComplexKey.add(new PropertyRef().setPropertyName("ComplexPropName").setAlias("alias").setPath( - "Comp/ComplexPropName")); - typeWithComplexKeyProvider.setKey(keyForTypeWithComplexKey); - when(provider.getEntityType(typeWithComplexKeyName)).thenReturn(typeWithComplexKeyProvider); - - typeWithComplexKey = EdmEntityTypeImpl.getInstance(edm, typeWithComplexKeyName, typeWithComplexKeyProvider); - } - - @Test - public void testAbstractBaseTypeWithoutKey() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - - FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName"); - EntityType baseType = new EntityType(); - baseType.setName(baseName.getName()); - List<Property> properties = new ArrayList<Property>(); - properties.add(new Property().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - properties.add(new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - baseType.setProperties(properties); - List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>(); - navigationProperties.add(new NavigationProperty().setName("nav1")); - baseType.setNavigationProperties(navigationProperties); - when(provider.getEntityType(baseName)).thenReturn(baseType); - baseType.setAbstract(true); - EdmEntityType edmAbstarctBaseType = EdmEntityTypeImpl.getInstance(edm, baseName, baseType); - - assertEquals(2, edmAbstarctBaseType.getPropertyNames().size()); - assertEquals("Id", edmAbstarctBaseType.getPropertyNames().get(0)); - assertEquals("Name", edmAbstarctBaseType.getPropertyNames().get(1)); - - FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName"); - EntityType type = new EntityType(); - type.setName(typeName.getName()); - type.setBaseType(baseName); - List<Property> typeProperties = new ArrayList<Property>(); - typeProperties.add(new Property().setName("address").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - typeProperties.add(new Property().setName("email").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - type.setProperties(typeProperties); - List<PropertyRef> key = new ArrayList<PropertyRef>(); - key.add(new PropertyRef().setPropertyName("email")); - type.setKey(key); - List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>(); - typeNavigationProperties.add(new NavigationProperty().setName("nav2")); - type.setNavigationProperties(typeNavigationProperties); - when(provider.getEntityType(typeName)).thenReturn(type); - - EdmEntityType edmType = EdmEntityTypeImpl.getInstance(edm, typeName, type); - - assertNotNull(edmType.getBaseType()); - assertEquals(2, edmAbstarctBaseType.getPropertyNames().size()); - - assertEquals(1, edmType.getKeyPropertyRefs().size()); - assertEquals("email", edmType.getKeyPredicateNames().get(0)); - - assertEquals(4, edmType.getPropertyNames().size()); - assertEquals("Id", edmType.getPropertyNames().get(0)); - assertEquals("Name", edmType.getPropertyNames().get(1)); - assertEquals("address", edmType.getPropertyNames().get(2)); - assertEquals("email", edmType.getPropertyNames().get(3)); - - assertEquals(2, edmType.getNavigationPropertyNames().size()); - assertEquals("nav1", edmType.getNavigationPropertyNames().get(0)); - assertEquals("nav2", edmType.getNavigationPropertyNames().get(1)); - } - - @Test - public void testAbstractBaseTypeWithtKey() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - - FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName"); - EntityType baseType = new EntityType(); - baseType.setName(baseName.getName()); - List<Property> properties = new ArrayList<Property>(); - properties.add(new Property().setName("Id").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - properties.add(new Property().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - baseType.setProperties(properties); - List<PropertyRef> key = new ArrayList<PropertyRef>(); - key.add(new PropertyRef().setPropertyName("Id")); - baseType.setKey(key); - List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>(); - navigationProperties.add(new NavigationProperty().setName("nav1")); - baseType.setNavigationProperties(navigationProperties); - when(provider.getEntityType(baseName)).thenReturn(baseType); - baseType.setAbstract(true); - EdmEntityType edmAbstarctBaseType = EdmEntityTypeImpl.getInstance(edm, baseName, baseType); - - FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName"); - EntityType type = new EntityType(); - type.setName(typeName.getName()); - type.setBaseType(baseName); - List<Property> typeProperties = new ArrayList<Property>(); - typeProperties.add(new Property().setName("address").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - typeProperties.add(new Property().setName("email").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName())); - type.setProperties(typeProperties); - List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>(); - typeNavigationProperties.add(new NavigationProperty().setName("nav2")); - type.setNavigationProperties(typeNavigationProperties); - when(provider.getEntityType(typeName)).thenReturn(type); - EdmEntityType edmType = EdmEntityTypeImpl.getInstance(edm, typeName, type); - - assertNotNull(edmType.getBaseType()); - assertEquals(2, edmAbstarctBaseType.getPropertyNames().size()); - - assertEquals(1, edmType.getKeyPropertyRefs().size()); - assertEquals("Id", edmType.getKeyPredicateNames().get(0)); - - assertEquals(4, edmType.getPropertyNames().size()); - assertEquals("Id", edmType.getPropertyNames().get(0)); - assertEquals("Name", edmType.getPropertyNames().get(1)); - assertEquals("address", edmType.getPropertyNames().get(2)); - assertEquals("email", edmType.getPropertyNames().get(3)); - - assertEquals(2, edmType.getNavigationPropertyNames().size()); - assertEquals("nav1", edmType.getNavigationPropertyNames().get(0)); - assertEquals("nav2", edmType.getNavigationPropertyNames().get(1)); - } - - @Test - public void hasStream() { - assertFalse(typeWithBaseType.hasStream()); - } - - @Test - public void complexKeyWithAlias() { - List<String> keyPredicateNames = typeWithComplexKey.getKeyPredicateNames(); - assertEquals(2, keyPredicateNames.size()); - assertEquals("Id", keyPredicateNames.get(0)); - assertEquals("alias", keyPredicateNames.get(1)); - - EdmKeyPropertyRef keyPropertyRef = typeWithComplexKey.getKeyPropertyRef("Id"); - assertNotNull(keyPropertyRef); - assertEquals("Id", keyPropertyRef.getKeyPropertyName()); - assertNull(keyPropertyRef.getAlias()); - EdmProperty keyProperty = keyPropertyRef.getProperty(); - assertNotNull(keyProperty); - assertEquals(typeWithComplexKey.getProperty("Id"), keyProperty); - - keyPropertyRef = typeWithComplexKey.getKeyPropertyRef("alias"); - assertNotNull(keyPropertyRef); - assertEquals("ComplexPropName", keyPropertyRef.getKeyPropertyName()); - assertEquals("alias", keyPropertyRef.getAlias()); - assertEquals("Comp/ComplexPropName", keyPropertyRef.getPath()); - - keyProperty = keyPropertyRef.getProperty(); - assertNotNull(keyProperty); - EdmElement complexProperty = typeWithComplexKey.getProperty("Comp"); - EdmComplexType complexType = (EdmComplexType) complexProperty.getType(); - assertNotNull(complexType); - assertEquals(complexType.getProperty("ComplexPropName"), keyProperty); - } - - @Test - public void keyBehaviour() { - List<String> keyPredicateNames = baseType.getKeyPredicateNames(); - assertEquals(1, keyPredicateNames.size()); - assertEquals("Id", keyPredicateNames.get(0)); - - EdmKeyPropertyRef keyPropertyRef = baseType.getKeyPropertyRef("Id"); - assertNotNull(keyPropertyRef); - assertEquals("Id", keyPropertyRef.getKeyPropertyName()); - assertNull(keyPropertyRef.getAlias()); - - EdmProperty keyProperty = keyPropertyRef.getProperty(); - assertNotNull(keyProperty); - assertEquals(baseType.getProperty("Id"), keyProperty); - - List<EdmKeyPropertyRef> keyPropertyRefs = baseType.getKeyPropertyRefs(); - assertNotNull(keyPropertyRefs); - assertEquals(1, keyPropertyRefs.size()); - assertEquals("Id", keyPropertyRefs.get(0).getKeyPropertyName()); - } - - @Test - public void keyBehaviourWithBasetype() { - List<String> keyPredicateNames = typeWithBaseType.getKeyPredicateNames(); - assertEquals(1, keyPredicateNames.size()); - assertEquals("Id", keyPredicateNames.get(0)); - - EdmKeyPropertyRef keyPropertyRef = typeWithBaseType.getKeyPropertyRef("Id"); - assertNotNull(keyPropertyRef); - assertEquals("Id", keyPropertyRef.getKeyPropertyName()); - assertNull(keyPropertyRef.getAlias()); - - List<EdmKeyPropertyRef> keyPropertyRefs = typeWithBaseType.getKeyPropertyRefs(); - assertNotNull(keyPropertyRefs); - assertEquals(1, keyPropertyRefs.size()); - assertEquals("Id", keyPropertyRefs.get(0).getKeyPropertyName()); - assertTrue(keyPropertyRefs == typeWithBaseType.getKeyPropertyRefs()); - } - - @Test - public void getBaseType() { - assertNull(baseType.getBaseType()); - assertNotNull(typeWithBaseType.getBaseType()); - } - - @Test - public void propertiesBehaviour() { - List<String> propertyNames = baseType.getPropertyNames(); - assertEquals(2, propertyNames.size()); - assertEquals("Id", baseType.getProperty("Id").getName()); - assertEquals("Name", baseType.getProperty("Name").getName()); - } - - @Test - public void propertiesBehaviourWithBaseType() { - List<String> propertyNames = typeWithBaseType.getPropertyNames(); - assertEquals(4, propertyNames.size()); - assertEquals("Id", typeWithBaseType.getProperty("Id").getName()); - assertEquals("Name", typeWithBaseType.getProperty("Name").getName()); - assertEquals("address", typeWithBaseType.getProperty("address").getName()); - assertEquals("email", typeWithBaseType.getProperty("email").getName()); - } - - @Test - public void navigationPropertiesBehaviour() { - List<String> navigationPropertyNames = baseType.getNavigationPropertyNames(); - assertEquals(1, navigationPropertyNames.size()); - assertEquals("nav1", baseType.getProperty("nav1").getName()); - } - - @Test - public void navigationPropertiesBehaviourWithBaseType() { - List<String> navigationPropertyNames = typeWithBaseType.getNavigationPropertyNames(); - assertEquals(2, navigationPropertyNames.size()); - assertEquals("nav1", typeWithBaseType.getProperty("nav1").getName()); - assertEquals("nav2", typeWithBaseType.getProperty("nav2").getName()); - } - - @Test - public void propertyCaching() { - EdmElement property = typeWithBaseType.getProperty("Id"); - assertTrue(property == typeWithBaseType.getProperty("Id")); - - property = typeWithBaseType.getProperty("address"); - assertTrue(property == typeWithBaseType.getProperty("address")); - - property = typeWithBaseType.getProperty("nav1"); - assertTrue(property == typeWithBaseType.getProperty("nav1")); - - property = typeWithBaseType.getProperty("nav2"); - assertTrue(property == typeWithBaseType.getProperty("nav2")); - } - - @Test - public void abstractTypeDoesNotNeedKey() { - EdmProviderImpl edm = mock(EdmProviderImpl.class); - EntityType entityType = new EntityType().setName("n").setAbstract(true); - EdmEntityTypeImpl.getInstance(edm, new FullQualifiedName("n", "n"), entityType); - } - - @Test(expected = EdmException.class) - public void invalidBaseType() { - EdmProviderImpl edm = mock(EdmProviderImpl.class); - EntityType entityType = new EntityType().setName("n").setBaseType(new FullQualifiedName("wrong", "wrong")); - EdmEntityTypeImpl instance = EdmEntityTypeImpl.getInstance(edm, new FullQualifiedName("n", "n"), entityType); - instance.getBaseType(); - } - - @Test - public void abstractTypeWithAbstractBaseTypeDoesNotNeedKey() throws Exception { - EdmProvider provider = mock(EdmProvider.class); - EdmProviderImpl edm = new EdmProviderImpl(provider); - FullQualifiedName baseName = new FullQualifiedName("n", "base"); - when(provider.getEntityType(baseName)).thenReturn(new EntityType().setName("base").setAbstract(true)); - EntityType entityType = new EntityType().setName("n").setAbstract(true).setBaseType(baseName); - EdmEntityTypeImpl.getInstance(edm, new FullQualifiedName("n", "n"), entityType); - } - -}
