Package com.robustaweb.library.rest.representation

Source Code of com.robustaweb.library.rest.representation.RepresentationTest

package com.robustaweb.library.rest.representation;

import com.robustaweb.library.rest.representation.implementation.JdomRepresentation;
import java.util.Arrays;
import java.util.List;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author n.zozol
*/
public class RepresentationTest {

    static Representation [] representations;
    String xml;
    String json;
    int asInt = 0;
    float asFloat = 0f;

    public RepresentationTest() {
         
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

     @Before
    public void setUp() {
          xml =
                "<resource>"
                + "<id>12</id>"
                + "<age>24</age>"
                + "<firstName>John</firstName>"
                + "<lastName>Doe</lastName>"
                + "<userName>johndoe</userName>"
                + "<numbers>1</numbers>"
                + "<numbers>2</numbers>"
                + "<numbers>3</numbers>"
                + "<numbers>4</numbers>"
                + "</resource>";

         json =
                "{resource : "
                + "id : 12, age : 24, firstName : 'John', lastName : 'Doe', userName : 'johndoe', "
                + " numbers : [1, 2, 3, 4],"
                + "}";

        //only JDOM now
        representations = new Representation[]{new JdomRepresentation(xml)};
    }

    @After
    public void tearDown() {
    }

    @Test
    public void testToString() {
        for (Representation rp : representations) {
            String res = rp.toString();

            String errorMessage = "toString () is not working";
            assertTrue(errorMessage, res.contains("<numbers>2<"));
        }
    }

    @Test
    public void testGet() {
        for (Representation rp : representations) {
            String res = rp.get("lastName");
            String expected = "Doe";
            String errorMessage = "getting " + res + " for representation " + rp.getClass().getSimpleName() + " instead of " + expected;
            assertEquals(errorMessage, expected, res);
        }
    }

    @Test
    public void testSet() {
         for (Representation rp : representations) {
            String expected = "Timbler";
            rp.set("motherName", expected);
            String res = rp.get("motherName");
            String errorMessage = "getting " + res + " for representation " + rp.getClass().getSimpleName() + " instead of " + expected;
            assertEquals(errorMessage, expected, res);
        }
    }

    @Test
    public void testGetDocument() {
          for (Representation rp : representations) {
            String errorMessage = "getDocument() is null for representation " + rp.getClass().getSimpleName();
            assertNotNull(errorMessage, rp.getDocument());
        }
    }

    @Test
    public void testGetNumber() {
         for (Representation rp : representations) {
            Long expectedId = 12L;
            Long resId = rp.getNumber("id");
            String errorMessage = "getting " + resId + " for representation " + rp.getClass().getSimpleName() + " instead of " + expectedId;
            assertEquals(errorMessage, expectedId, resId);

            Representation clone = rp.copy();
            clone.set("float", "12.2");
            float expected = 12.2f;
            float result = clone.getNumber("float", asFloat);
            errorMessage = "getting " + result + " for representation " + clone.getClass().getSimpleName() + " instead of " + expected;
            assertTrue(errorMessage, expected == result);//no epsilon test here           
        }
    }
 

    @Test
    public void testGetOptionalValue() {
         for (Representation rp : representations) {
            String expected = "johndoe";
            String res = rp.getOptionalValue("username");
            String errorMessage = "getting " + res + " for representation " + rp.getClass().getSimpleName() + " instead of " + expected;
            assertEquals(errorMessage, expected, res);

            expected = null;
            res = rp.getOptionalValue("usernameThatIsNotATag");
            errorMessage = "getting " + res + " for representation " + rp.getClass().getSimpleName() + " instead of " + expected;
            assertNull(errorMessage, res);
        }
    }

    @Test
    public void testGetValues() {
          for (Representation rp : representations) {
            List<String> res = rp.getValues("numbers");
            List<String> expected = Arrays.asList(new String[]{"1", "2", "3", "4"});
            String errorMessage = "getting " + res + " for representation " + rp.getClass().getSimpleName() + " instead of " + expected;
            assertTrue(errorMessage, res.equals(expected));
        }
    }

    @Test
    public void testGetNumbers_String() {
         for (Representation rp : representations) {

            List<Long> resAsLong = rp.getNumbers("numbers");
            List<Integer> resAsInts = rp.getNumbers("numbers", asInt);
            List<Float> resAsFloats = rp.getNumbers("numbers", asFloat);
            List<Integer> expectedAsInts = Arrays.asList(new Integer[]{1, 2, 3, 4});
            List<Long> expectedAsLong = Arrays.asList(new Long[]{1L, 2L, 3L, 4L});
            List<Float> expectedAsFloat = Arrays.asList(new Float[]{1f, 2f, 3f, 4f});

            String errorMessage = "For Integers : getting " + resAsInts + " for representation " + rp.getClass().getSimpleName() + " instead of " + expectedAsInts;
            assertTrue(errorMessage, resAsInts.equals(expectedAsInts));

            errorMessage = "For Longs : getting " + resAsLong + " for representation " + rp.getClass().getSimpleName() + " instead of " + expectedAsLong;
            assertTrue(errorMessage, resAsLong.equals(expectedAsLong));

            errorMessage = "For Floats : getting " + resAsFloats + " for representation " + rp.getClass().getSimpleName() + " instead of " + expectedAsFloat;
            assertTrue(errorMessage, resAsFloats.equals(expectedAsFloat));
        }
    }  

}
TOP

Related Classes of com.robustaweb.library.rest.representation.RepresentationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.