Package org.eurekastreams.server.persistence

Source Code of org.eurekastreams.server.persistence.EnrollmentMapperTest

/*
* Copyright (c) 2009-2010 Lockheed Martin Corporation
*
* 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 org.eurekastreams.server.persistence;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.NoResultException;

import org.eurekastreams.server.domain.BackgroundItem;
import org.eurekastreams.server.domain.BackgroundItemType;
import org.eurekastreams.server.domain.Enrollment;
import org.eurekastreams.server.domain.Person;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

/**
* This class is responsible for testing the JPA Implementation of the Enrollment Mapper interface. The tests contained
* in here ensure proper interaction with the database.
*/
public class EnrollmentMapperTest extends DomainEntityMapperTest
{
    /**
     * JpaEnrollmentMapper - system under test.
     */
    @Autowired
    private EnrollmentMapper jpaEnrollmentMapper;

    /**
     * The person mapper.
     */
    @Autowired
    private PersonMapper jpaPersonMapper;

    /**
     * Test inserting a enrollment.
     */
    @Test
    public void testInsert()
    {
        final long personId = 142L;
        Person person = jpaPersonMapper.findById(personId);
        Enrollment enrollment = new Enrollment(person, "school name", "degree", null, null, null, "desc");
        jpaEnrollmentMapper.insert(enrollment);
        long enrollmentId = enrollment.getId();
        jpaEnrollmentMapper.getEntityManager().clear();

        assertTrue("Inserting a Enrollment did not get a positive id.", jpaEnrollmentMapper.findById(enrollmentId)
                .getId() > 0);
    }

    /**
     * Test deleting a enrollment.
     */
    @Test(expected = NoResultException.class)
    public void testDelete()
    {
        final long enrollmentId = 2042L;
        jpaEnrollmentMapper.delete(enrollmentId);

        // if deleted, this should throw NoResultsException
        jpaEnrollmentMapper.findById(enrollmentId);
    }

    /**
     * Test finding a person's enrollment.
     */
    @Test
    public void testfindPersonEnrollments()
    {
        final String uuid = "2d359911-0977-418a-9490-57e8252b1a42";
        List<Enrollment> enrollments = jpaEnrollmentMapper.findPersonEnrollmentsByOpenSocialId(uuid);

        assertTrue("No Enrollments found for person with open social id 2d359911-0977-418a-9490-57e8252b1a42",
                enrollments.size() > 0);

        // verify loaded attributes of enrollment
        assertEquals("Incorrect school name returned", "school_name_1", enrollments.get(0).getSchoolName());
        assertEquals("Expected enrollment to contain activity", 1, enrollments.get(0).getActivities().size());
        assertEquals("Expected enrollment to contain area of study", 1, enrollments.get(0).getAreasOfStudy().size());
    }

    /**
     * Test finding a person's enrollment.
     */
    @Test
    public void testfindPersonEnrollmentsById()
    {
        final Long id = Long.valueOf("42");
        List<Enrollment> enrollments = jpaEnrollmentMapper.findPersonEnrollmentsById(id);
               
        assertTrue("No Enrollments found for person with id",
                enrollments.size() > 0);

        // verify loaded attributes of enrollment
        assertEquals("Incorrect school name returned", "school_name_1", enrollments.get(0).getSchoolName());
        assertEquals("Expected enrollment to contain activity", 1, enrollments.get(0).getActivities().size());
        assertEquals("Expected enrollment to contain area of study", 1, enrollments.get(0).getAreasOfStudy().size());
    }
   
    /**
     * Test that set/get of activities and areas of study update in db correctly.
     */
    @Test
    public void testUpdateEnrollmentCollections()
    {
        final long enrollmentId = 2042L;
        Enrollment enrollment = jpaEnrollmentMapper.findById(enrollmentId);
        ArrayList<BackgroundItem> activities = new ArrayList<BackgroundItem>(3);
        activities.add(new BackgroundItem("a", BackgroundItemType.ACTIVITY_OR_SOCIETY));
        activities.add(new BackgroundItem("b", BackgroundItemType.ACTIVITY_OR_SOCIETY));
        activities.add(new BackgroundItem("c", BackgroundItemType.ACTIVITY_OR_SOCIETY));
        enrollment.setActivities(activities);

        ArrayList<BackgroundItem> areasOfStudy = new ArrayList<BackgroundItem>(3);
        areasOfStudy.add(new BackgroundItem("d", BackgroundItemType.AREA_OF_STUDY));
        areasOfStudy.add(new BackgroundItem("e", BackgroundItemType.AREA_OF_STUDY));
        areasOfStudy.add(new BackgroundItem("f", BackgroundItemType.AREA_OF_STUDY));
        areasOfStudy.add(new BackgroundItem("g", BackgroundItemType.AREA_OF_STUDY));
        enrollment.setAreasOfStudy(areasOfStudy);

        jpaEnrollmentMapper.flush();
        jpaEnrollmentMapper.getEntityManager().clear();

        enrollment = jpaEnrollmentMapper.findById(enrollmentId);

        assertEquals("Expected enrollment to contain activity", 3, enrollment.getActivities().size());
        assertEquals("Expected enrollment to contain area of study", 4, enrollment.getAreasOfStudy().size());

    }

    /**
     * Tests the flush and index method.
     */
    @Test
    public void voidTestFlushAndIndex()
    {
        final long enrollmentId = 2042L;
        Enrollment enrollment = jpaEnrollmentMapper.findById(enrollmentId);
        ArrayList<BackgroundItem> activities = new ArrayList<BackgroundItem>(3);
        activities.add(new BackgroundItem("a", BackgroundItemType.ACTIVITY_OR_SOCIETY));
        activities.add(new BackgroundItem("b", BackgroundItemType.ACTIVITY_OR_SOCIETY));
        activities.add(new BackgroundItem("c", BackgroundItemType.ACTIVITY_OR_SOCIETY));
        enrollment.setActivities(activities);

        ArrayList<BackgroundItem> areasOfStudy = new ArrayList<BackgroundItem>(3);
        areasOfStudy.add(new BackgroundItem("d", BackgroundItemType.AREA_OF_STUDY));
        areasOfStudy.add(new BackgroundItem("e", BackgroundItemType.AREA_OF_STUDY));
        areasOfStudy.add(new BackgroundItem("f", BackgroundItemType.AREA_OF_STUDY));
        areasOfStudy.add(new BackgroundItem("g", BackgroundItemType.AREA_OF_STUDY));
        enrollment.setAreasOfStudy(areasOfStudy);

        jpaEnrollmentMapper.flush("2d359911-0977-418a-9490-57e8252b1142");
       
        jpaEnrollmentMapper.getEntityManager().clear();

        enrollment = jpaEnrollmentMapper.findById(enrollmentId);

        assertEquals("Expected enrollment to contain activity", 3, enrollment.getActivities().size());
        assertEquals("Expected enrollment to contain area of study", 4, enrollment.getAreasOfStudy().size());       
    }

}
TOP

Related Classes of org.eurekastreams.server.persistence.EnrollmentMapperTest

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.