CompositeTests.java :  » Search-Engine » compass-2.0 » org » compass » annotations » test » reference » poly » Java Open Source

Java Open Source » Search Engine » compass 2.0 
compass 2.0 » org » compass » annotations » test » reference » poly » CompositeTests.java
package org.compass.annotations.test.reference.poly;

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

import org.compass.annotations.test.AbstractAnnotationsTestCase;
import org.compass.core.CompassSession;
import org.compass.core.CompassTransaction;
import org.compass.core.config.CompassConfiguration;

/**
 * Composite tests
 */
public class CompositeTests extends AbstractAnnotationsTestCase {


    protected void addExtraConf(CompassConfiguration conf) {
        conf.addClass(Category.class).addClass(CategoryGroup.class);
    }

    public void testCompositeRelationships() {
        // Build model
        CategoryGroup sports = new CategoryGroup(10l, "Sports");
        Set<Category> categories = new HashSet<Category>();
        categories.add(new Category(100l, "Fishing"));
        categories.add(new Category(101l, "Golf"));
        categories.add(new Category(102l, "Extreme Ironing"));
        sports.setCategories(categories);

        assertSportsCategoryGroup(sports);

        // Index
        CompassSession compassSession = openSession();
        CompassTransaction compassTransaction = compassSession.beginTransaction();

        compassSession.save(sports);
        for (Category category : sports.getCategories()) {
            compassSession.save(category);
        }

        compassTransaction.commit();
        compassSession.close();

        // Search
        compassSession = openSession();
        compassTransaction = compassSession.beginTransaction();

        Category category = (Category) compassSession.get(Category.class, 100l);
        assertNotNull(category);
        assertEquals("Fishing", category.getName());
        assertEquals("Golf", ((Category) compassSession.get(Category.class, 101l)).getName());
        assertEquals("Extreme Ironing", ((Category) compassSession.get(Category.class, 102l)).getName());

        // Load composite and check composed instances
        CategoryGroup sportsLoaded = (CategoryGroup) compassSession.get(CategoryGroup.class, 10l);
        assertSportsCategoryGroup(sportsLoaded);

        compassTransaction.commit();
        compassSession.close();

    }

    private void assertSportsCategoryGroup(CategoryGroup sports) {
        assertNotNull(sports);
        assertEquals("Sports", sports.getName());
        assertNotNull(sports.getCategories());
        assertEquals(3, sports.getCategories().size());
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.