/* * Copyright 2013 State University of New York at Oswego * * Licensed 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 edu.oswego.csc480_hci521_2013.shared.h2o.urlbuilders; import edu.oswego.csc480_hci521_2013.server.ServerUrlEncoder; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.junit.After; import org.junit.AfterClass; import static org.junit.Assert.*; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class InspectBuilderTest { UrlEncoder encoder; public InspectBuilderTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { encoder = new ServerUrlEncoder(); } @After public void tearDown() { encoder = null; } /** * Test of newInstance constructor, of class InspectBuilder. */ @Test public void newInstance() { //System.out.println("newInstance"); InspectBuilder instance = new InspectBuilder(); assertNotNull(instance); assertTrue(instance instanceof InspectBuilder); } /** * Test of newInstanceParam constructor, of class InspectBuilder. */ @Test public void newInstanceParam() { try { //System.out.println("newInstanceParam"); String key = "key"; String page = "Inspect.json"; InspectBuilder instance = new InspectBuilder(key); assertNotNull(instance); assertTrue(instance instanceof InspectBuilder); // Test if AbstractBuilder "page" field is set. Field pageField = InspectBuilder.class.getSuperclass().getDeclaredField("page"); pageField.setAccessible(true); String pageValue = (String)pageField.get(instance); assertEquals("/"+page, pageValue); // Test if argument is added to inherited HashMap<String, ArrayList<String>> args. Field argsField = InspectBuilder.class.getSuperclass().getDeclaredField("args"); argsField.setAccessible(true); HashMap<String, String> arg=(HashMap<String, String>)argsField.get(instance); boolean containsKey = arg.containsKey(key); assertTrue(containsKey); } catch (IllegalArgumentException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (NoSuchFieldException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (SecurityException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } } /** * Test of setView method, of class InspectBuilder. */ @Test public void testSetView() { try { //System.out.println("setView"); Integer view = 101; InspectBuilder instance = new InspectBuilder(); InspectBuilder expResult = instance.setView(view); assertNotNull(expResult); assertTrue(expResult instanceof InspectBuilder); // Test if "view" is added to inherited HashMap<String, ArrayList<String>> args. Field argsField = InspectBuilder.class.getSuperclass().getDeclaredField("args"); argsField.setAccessible(true); HashMap<String, String> args = (HashMap<String, String>) argsField.get(instance); boolean containsKey = args.containsKey("view"); assertTrue(containsKey); } catch (IllegalArgumentException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (NoSuchFieldException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (SecurityException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } } /* @Test public final void testSetView() { int view = 1; StoreViewBuilder instance = new StoreViewBuilder(); String expResult = "http://localhost:54321/Inspect.json?view=1"; StoreViewBuilder result = instance.setView(view); assertEquals(expResult, result.build(encoder)); } */ /** * Test of setView method with negative argument. */ @Test(expected = IllegalArgumentException.class) public final void testSetViewNegative() { InspectBuilder instance = new InspectBuilder(); instance.setView(Integer.MIN_VALUE); } /** * Test of setView method with Integer.MAX_VALUE. */ @Test(expected = IllegalArgumentException.class) public final void testSetViewMaxInt() { InspectBuilder instance = new InspectBuilder(); instance.setView(Integer.MAX_VALUE); } /* @Test public final void testSetOffset() { Integer offset = 1; StoreViewBuilder instance = new StoreViewBuilder(); String expResult = "http://localhost:54321/Inspect.json?offset=1"; StoreViewBuilder result = instance.setOffset(offset); assertEquals(expResult, result.build(encoder)); } */ /** * Test of setOffset method, of class InspectBuilder. */ @Test public void testSetOffset() { try { //System.out.println("setOffset"); Long offset = new Long(101); InspectBuilder instance = new InspectBuilder(); InspectBuilder expResult = instance.setOffset(offset); assertNotNull(expResult); assertTrue(expResult instanceof InspectBuilder); // Test if "Offset" is added to inherited HashMap<String, ArrayList<String>> args. Field argsField = InspectBuilder.class.getSuperclass().getDeclaredField("args"); argsField.setAccessible(true); Map<String, String> args = (Map<String, String>) argsField.get(instance); boolean containsKey = args.containsKey("offset"); assertTrue(containsKey); } catch (IllegalArgumentException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (NoSuchFieldException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } catch (SecurityException ex) { Logger.getLogger(InspectBuilderTest.class.getName()).log(Level.SEVERE, null, ex); } } /** * Test of setOffset method with negative arg. */ @Test(expected = IllegalArgumentException.class) public final void testSetOffsetNegative() { InspectBuilder instance = new InspectBuilder(); instance.setOffset(Long.MIN_VALUE); } /** * Test of setOffset method with max Long arg. */ @Test public final void testSetOffsetMaxLong() { InspectBuilder instance = new InspectBuilder(); instance.setOffset(Long.MAX_VALUE); } }