+++ /dev/null
-/**
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.northbound.commons.query;
-
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.opendaylight.controller.northbound.commons.types.StringList;
-
-public class QueryContextTest {
-
- protected static final List<PersonBean> people = new ArrayList<PersonBean>();
- protected static final List<BookBean> books = new ArrayList<BookBean>();
-
- public static void p(String msg) {
- System.out.println("=== " + msg);
- }
-
- @BeforeClass
- public static void load() {
- people.add(new PersonBean(100, "John", "Doe", "San Jose"));
- people.add(new PersonBean(200, "Foo", "Bar", "San Francisco"));
- people.add(new PersonBean(300, "A", "B", "San Francisco"));
- people.add(new PersonBean(400, "X", "Y", "New York"));
-
- books.add(new BookBean("Book1", "A001", people.get(0)));
- books.add(new BookBean("Book2", "A002", people.get(1)));
- books.add(new BookBean("Book3", "A003", people.get(2)));
-
- ReviewBean review1 = new ReviewBean("cool", people.get(2));
- ReviewBean review2 = new ReviewBean("kewl", people.get(3));
-
- books.get(0).addReview(review1).addReview(review2);
- books.get(1).addReview(review1);
- books.get(2).addReview(review2).addReview(review1);
-
- }
-
- @Test
- public void testQueryContext() {
- QueryContext queryContext = new QueryContextImpl();
- Assert.assertNotNull(queryContext);
- }
-
- @Test
- public void testSimpleQuery() throws QueryException {
- QueryContext queryContext = new QueryContextImpl();
- Query<PersonBean> query = queryContext.createQuery(
- "person.id==200", PersonBean.class);
- Assert.assertNotNull(query);
-
- List<PersonBean> found = query.find(people);
- Assert.assertNotNull(found);
- Assert.assertTrue(found.size() == 1);
- Assert.assertEquals("Foo", found.get(0).firstName);
- }
-
- @Test
- public void testAndQuery() throws QueryException {
- QueryContext queryContext = new QueryContextImpl();
- Query<PersonBean> query = queryContext.createQuery(
- "person.id!=200;(person.city='San.*')", PersonBean.class);
- Assert.assertNotNull(query);
-
- List<PersonBean> found = query.find(people);
- Assert.assertNotNull(found);
- Assert.assertTrue(found.size() == 2);
- Assert.assertEquals("John", found.get(0).firstName);
- Assert.assertEquals("A", found.get(1).firstName);
- }
-
- @Test
- public void testOrQuery() throws QueryException {
- QueryContext queryContext = new QueryContextImpl();
- Query<PersonBean> query = queryContext.createQuery(
- "person.id==200,(person.city='San.*')", PersonBean.class);
- Assert.assertNotNull(query);
-
- List<PersonBean> found = query.find(people);
- Assert.assertNotNull(found);
- Assert.assertTrue(found.size() == 3);
- Assert.assertEquals("John", found.get(0).firstName);
- Assert.assertEquals("Foo", found.get(1).firstName);
- Assert.assertEquals("A", found.get(2).firstName);
- }
-
- @Test
- public void testXmlElementWrapper() throws QueryException {
- List<String> emails = new ArrayList<String>();
- emails.add("john@cisco.com");
- emails.add("john@gmail.com");
- people.get(0).setEmail(emails);
-
- p(toXml(people.get(0)));
- QueryContext queryContext = new QueryContextImpl();
- Query<PersonBean> query = queryContext.createQuery(
- "person.emails.email==john@cisco.com", PersonBean.class);
- Assert.assertNotNull(query);
-
- List<PersonBean> found = query.find(people);
- Assert.assertNotNull(found);
- Assert.assertEquals(1,found.size());
- Assert.assertEquals("John", found.get(0).firstName);
- }
-
- @Test
- public void testXmlWrapperOfWrapper() throws QueryException{
- WrapperList wrapper = new WrapperList();
- wrapper.item.add("Test1");
- wrapper.item.add("Test2");
-
- books.get(0).addWrapperList(wrapper);
- books.get(1).addWrapperList(wrapper);
-
- System.out.println(toXml(books.get(0)));
- QueryContext queryContext = new QueryContextImpl();
- Query<BookBean> query = queryContext.createQuery(
- "book.parent.child.items.item==Test1", BookBean.class);
- Assert.assertNotNull(query);
- }
-
- @Test
- public void testXmlElementWrapperListofList() throws QueryException {
- // create Stringlist
- List<String> testList = new ArrayList<String>();
- testList.add("A");
- testList.add("B");
- StringList itemList = new StringList(testList);
- books.get(0).addToTestList(itemList);
-
- System.out.println(toXml(books.get(0)));
- QueryContext queryContext = new QueryContextImpl();
- Query<BookBean> query = queryContext.createQuery(
- "book.test.testList.item==A", BookBean.class);
- Assert.assertNotNull(query);
- }
-
- @Test
- public void testPrimitiveIteratableTypes() throws QueryException {
- // Load data for this test
- List<String> sellers = new ArrayList<String>();
- sellers.add("Amazon");
-
- books.get(0).setSellerInfo(sellers);
- sellers.add("Barners & Nobles");
- books.get(1).setSellerInfo(sellers);
- sellers.add("Borders");
- sellers.remove("Amazon");
- sellers.add("BookShop");
- books.get(2).setSellerInfo(sellers);
-
- System.out.println(toXml(books.get(0)));
-
- QueryContext queryContext = new QueryContextImpl();
- Query<BookBean> query = queryContext.createQuery(
- "book.soldBy==Amazon", BookBean.class);
- Assert.assertNotNull(query);
-
- List<BookBean> found = query.find(books);
- Assert.assertNotNull(found);
- Assert.assertEquals(2,found.size());
- Assert.assertEquals("John", found.get(0).getauthor().firstName);
-
- query = queryContext.createQuery(
- "book.soldBy!=Amazon", BookBean.class);
- Assert.assertNotNull(query);
-
- found = query.find(books);
- System.out.println("books" +found);
- Assert.assertNotNull(found);
- Assert.assertEquals(1,found.size());
- Assert.assertEquals("A", found.get(0).getauthor().firstName);
- }
-
- @Test
- public void testCompositeIteratableTypes() throws QueryException {
- QueryContext queryContext = new QueryContextImpl();
- Query<BookBean> query = queryContext.createQuery("book.reviews.review.reviewer.firstName==X",
- BookBean.class);
- Assert.assertNotNull(query);
-
- List<BookBean> found = query.find(books);
- Assert.assertNotNull(found);
- Assert.assertEquals(2, found.size());
- Assert.assertEquals("John", found.get(0).getauthor().firstName);
-
- query = queryContext.createQuery("book.reviews.review.comment==kewl",
- BookBean.class);
- Assert.assertNotNull(query);
-
- found = query.find(books);
- Assert.assertNotNull(found);
- Assert.assertEquals(2, found.size());
- p("Book 0" + found.get(0));
- Assert.assertEquals("John", found.get(0).getauthor().firstName);
-
- query = queryContext.createQuery("book.reviews.review.reviewer.id>300",
- BookBean.class);
- Assert.assertNotNull(query);
-
- found = query.find(books);
- Assert.assertNotNull(found);
- Assert.assertEquals(2, found.size());
- p("Book 0" + found.get(0));
- Assert.assertEquals("John", found.get(0).getauthor().firstName);
-
- query = queryContext.createQuery("book.reviews.review.reviewer.firstName!=X",
- BookBean.class);
- Assert.assertNotNull(query);
-
- found = query.find(books);
- Assert.assertNotNull(found);
- Assert.assertEquals(1, found.size());
- p("Book 0" + found.get(0));
- Assert.assertEquals("Foo", found.get(0).getauthor().firstName);
- }
-
- @Test
- public void testXMLAccessorType() {
- //Assert.fail("implement");
- }
-
- @Test
- public void testMethodAnnotation() throws QueryException {
- System.out.println(toXml(books.get(0)));
- QueryContext queryContext = new QueryContextImpl();
- Query<BookBean> query = queryContext.createQuery(
- "book.isbn==preA003", BookBean.class);
- Assert.assertNotNull(query);
-
- List<BookBean> found = query.find(books);
- Assert.assertNotNull(found);
- Assert.assertEquals(1,found.size());
- Assert.assertEquals("A", found.get(0).getauthor().firstName);
- }
-
- public static String toXml(Object element) {
- try {
- JAXBContext jc = JAXBContext.newInstance(element.getClass());
- Marshaller marshaller = jc.createMarshaller();
- marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- marshaller.marshal(element, baos);
- return baos.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "";
- }
-
- @Test
- public void testXMLElementWrapperForCompositeTypes(){
- //Assert.fail("implement");
- }
-
-}
\ No newline at end of file