Package com.impetus.kundera.polyglot.tests

Source Code of com.impetus.kundera.polyglot.tests.OMUPolyglotTest

/*******************************************************************************
* * Copyright 2012 Impetus Infotech.
*  *
*  * 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 com.impetus.kundera.polyglot.tests;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import junit.framework.Assert;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.impetus.kundera.polyglot.entities.AddressU1M;
import com.impetus.kundera.polyglot.entities.PersonU1M;

/**
* @author vivek.mishra
*
*/
public class OMUPolyglotTest extends PersonAddressTestBase
{
    /**
     * Sets the up.
     *
     * @throws Exception
     *             the exception
     */
    @Before
    public void setUp() throws Exception
    {
        super.init();
    }

    /**
     * Test insert.
     */
    @Test
    public void testCRUD()
    {
      executeAllTests();
    }

    @Override
    protected void insert()
    {
        // Save Person
        PersonU1M personnel = new PersonU1M();
        personnel.setPersonId("unionetomany_1");
        personnel.setPersonName("Amresh");

        Set<AddressU1M> addresses = new HashSet<AddressU1M>();
        AddressU1M address1 = new AddressU1M();
        address1.setAddressId("unionetomany_a");
        address1.setStreet("AAAAAAAAAAAAA");

        AddressU1M address2 = new AddressU1M();
        address2.setAddressId("unionetomany_b");
        address2.setStreet("BBBBBBBBBBB");

        addresses.add(address1);
        addresses.add(address2);
        personnel.setAddresses(addresses);
        dao.insert(personnel);
    }

    @Override
    protected void find()
    {
        // Find Person
        PersonU1M p = (PersonU1M) dao.findPerson(PersonU1M.class, "unionetomany_1");
        assertPerson(p);
    }

    @Override
    protected void findPersonByIdColumn()
    {
        PersonU1M p = (PersonU1M) dao.findPersonByIdColumn(PersonU1M.class, "unionetomany_1");
        assertPerson(p);
    }

    @Override
    protected void findPersonByName()
    {
        List<PersonU1M> persons = dao.findPersonByName(PersonU1M.class, "Amresh");
        Assert.assertNotNull(persons);
        Assert.assertFalse(persons.isEmpty());
        Assert.assertTrue(persons.size() == 1);
        PersonU1M person = persons.get(0);
        assertPerson(person);
    }

    @Override
    protected void findAddressByIdColumn()
    {
        AddressU1M a = (AddressU1M) dao.findAddressByIdColumn(AddressU1M.class, "unionetomany_a");
        Assert.assertNotNull(a);
        Assert.assertEquals("unionetomany_a", a.getAddressId());
        Assert.assertEquals("AAAAAAAAAAAAA", a.getStreet());
    }

    @Override
    protected void findAddressByStreet()
    {
        List<AddressU1M> adds = dao.findAddressByStreet(AddressU1M.class, "AAAAAAAAAAAAA");
        Assert.assertNotNull(adds);
        Assert.assertFalse(adds.isEmpty());
        Assert.assertTrue(adds.size() == 1);

        AddressU1M a = adds.get(0);
        Assert.assertNotNull(a);
        Assert.assertEquals("unionetomany_a", a.getAddressId());
        Assert.assertEquals("AAAAAAAAAAAAA", a.getStreet());
    }

    @Override
    protected void update()
    {
        try
        {
            PersonU1M p = (PersonU1M) dao.findPerson(PersonU1M.class, "unionetomany_1");
            Assert.assertNotNull(p);
            Assert.assertEquals(2, p.getAddresses().size());
            p.setPersonName("Saurabh");

            for (AddressU1M address : p.getAddresses())
            {
                address.setStreet("Brand New Street");
            }
            dao.merge(p);
            assertPersonAfterUpdate();
        }
        catch (Exception e)
        {
           
            Assert.fail();
        }
    }

    @Override
    protected void remove()
    {
        try
        {
            // PersonU1M p = (PersonU1M)
            // dao.findPerson(PersonU1M.class, );
            dao.remove("unionetomany_1", PersonU1M.class);
            PersonU1M pAfterRemoval = (PersonU1M) dao
                    .findPerson(PersonU1M.class, "unionetomany_1");
            Assert.assertNull(pAfterRemoval);

        }
        catch (Exception e)
        {
           
            Assert.fail();
        }
    }

    /**
     * Tear down.
     *
     * @throws Exception
     *             the exception
     */
    @After
    public void tearDown() throws Exception
    {   
        super.close();
    }

    /**
     * @param p
     */
    private void assertPerson(PersonU1M p)
    {
        Assert.assertNotNull(p);
        Assert.assertEquals("unionetomany_1", p.getPersonId());
        Assert.assertEquals("Amresh", p.getPersonName());

        Set<AddressU1M> adds = p.getAddresses();
        Assert.assertNotNull(adds);
        Assert.assertFalse(adds.isEmpty());
        Assert.assertEquals(2, adds.size());

        for (AddressU1M address : adds)
        {
            Assert.assertNotNull(address.getStreet());
        }
    }

    /**
     *
     */
    private void assertPersonAfterUpdate()
    {
        PersonU1M pAfterMerge = (PersonU1M) dao.findPerson(PersonU1M.class, "unionetomany_1");
        Assert.assertNotNull(pAfterMerge);
        Assert.assertEquals("Saurabh", pAfterMerge.getPersonName());
        Assert.assertEquals(2, pAfterMerge.getAddresses().size());

        for (AddressU1M address : pAfterMerge.getAddresses())
        {
            Assert.assertEquals("Brand New Street", address.getStreet());
        }
    } 

}
TOP

Related Classes of com.impetus.kundera.polyglot.tests.OMUPolyglotTest

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.