Package org.apache.felix.ipojo.test.scenarios.service.dependency.comparator

Source Code of org.apache.felix.ipojo.test.scenarios.service.dependency.comparator.ComparatorTestCase

package org.apache.felix.ipojo.test.scenarios.service.dependency.comparator;

import java.util.Properties;

import org.apache.felix.ipojo.ComponentInstance;
import org.apache.felix.ipojo.junit4osgi.OSGiTestCase;
import org.apache.felix.ipojo.junit4osgi.helpers.IPOJOHelper;
import org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService;
import org.osgi.framework.ServiceReference;

public class ComparatorTestCase extends OSGiTestCase {
   
    String gradeFactory="COMPARATOR-gradedFooProvider";
    String dynamic = "COMPARATOR-DynamicCheckService";
    String dynamicpriority = "COMPARATOR-DynamicPriorityCheckService";
   
   
    IPOJOHelper helper;
    ComponentInstance dynInstance;
    ComponentInstance dpInstance;
   
    public void setUp() {
        helper = new IPOJOHelper(this);
        dynInstance = helper.createComponentInstance(dynamic, (Properties) null);
        dpInstance = helper.createComponentInstance(dynamicpriority, (Properties) null);
    }
   
    public void tearDown() {
       helper.dispose();
    }
   
    public void testDynamic() {
        createGrade(1);
        ComponentInstance grade2 = createGrade(2);
       
        ServiceReference ref = helper.getServiceReferenceByName(CheckService.class.getName(), dynInstance.getInstanceName());
        assertNotNull("CS availability", ref);
       
        CheckService cs = (CheckService) getServiceObject(ref);
        Properties result = cs.getProps();
        int fsGrade = ((Integer) result.get("fs")).intValue();
        int fs2Grade = ((Integer) result.get("fs2")).intValue();
        int[] fssGrades = (int[]) result.get("fss");
       
        assertEquals("fs grade -1", 2, fsGrade);
        assertEquals("fs2 grade -1", 2, fs2Grade);
        assertEquals("fss grade size -1", 2, fssGrades.length);
       

        assertEquals("fss grade[0] -1", 2, fssGrades[0]);
        assertEquals("fss grade[1] -1", 1, fssGrades[1]);
       
        createGrade(3);
        result = cs.getProps();
        fsGrade = ((Integer) result.get("fs")).intValue();
        fs2Grade = ((Integer) result.get("fs2")).intValue();
        fssGrades = (int[]) result.get("fss");
       
        assertEquals("fs grade -2", 2, fsGrade);
        assertEquals("fs2 grade -2", 2, fs2Grade);
        assertEquals("fss grade size -2", 3, fssGrades.length);
        assertEquals("fss grade[0] -2", 2, fssGrades[0]);
        assertEquals("fss grade[1] -2", 1, fssGrades[1]);
        assertEquals("fss grade[2] -2", 3, fssGrades[2]);

        grade2.stop();
       
        result = cs.getProps();
        fsGrade = ((Integer) result.get("fs")).intValue();
        fs2Grade = ((Integer) result.get("fs2")).intValue();
        fssGrades = (int[]) result.get("fss");
       
        assertEquals("fs grade -3", 3, fsGrade);
        assertEquals("fs2 grade -3", 3, fs2Grade);
        assertEquals("fss grade size -3", 2, fssGrades.length);
        assertEquals("fss grade[0] -3", 1, fssGrades[0]);
        assertEquals("fss grade[1] -3", 3, fssGrades[1]);       
    }
   
    public void testDynamicPriority() {
        createGrade(1);
        ComponentInstance grade2 = createGrade(2);
       
        ServiceReference ref = helper.getServiceReferenceByName(CheckService.class.getName(), dpInstance.getInstanceName());
        assertNotNull("CS availability", ref);
       
        CheckService cs = (CheckService) getServiceObject(ref);
        Properties result = cs.getProps();
        int fsGrade = ((Integer) result.get("fs")).intValue();
        int fs2Grade = ((Integer) result.get("fs2")).intValue();
        int[] fssGrades = (int[]) result.get("fss");
       
        assertEquals("fs grade -1", 2, fsGrade);
        assertEquals("fs2 grade -1", 2, fs2Grade);
        assertEquals("fss grade size -1", 2, fssGrades.length);
        assertEquals("fss grade[0] -1", 2, fssGrades[0]);
        assertEquals("fss grade[1] -1", 1, fssGrades[1]);
       
        createGrade(3);
        result = cs.getProps();
        fsGrade = ((Integer) result.get("fs")).intValue();
        fs2Grade = ((Integer) result.get("fs2")).intValue();
        fssGrades = (int[]) result.get("fss");
       
        assertEquals("fs grade -2", 3, fsGrade);
        assertEquals("fs2 grade -2", 3, fs2Grade);
        assertEquals("fss grade size -2", 3, fssGrades.length);
        assertEquals("fss grade[0] -2", 3, fssGrades[0]);
        assertEquals("fss grade[1] -2", 2, fssGrades[1]);
        assertEquals("fss grade[2] -2", 1, fssGrades[2]);

        grade2.stop();
       
        result = cs.getProps();
        fsGrade = ((Integer) result.get("fs")).intValue();
        fs2Grade = ((Integer) result.get("fs2")).intValue();
        fssGrades = (int[]) result.get("fss");
       
        assertEquals("fs grade -3", 3, fsGrade);
        assertEquals("fs2 grade -3", 3, fs2Grade);
        assertEquals("fss grade size -3", 2, fssGrades.length);
        assertEquals("fss grade[0] -3", 3, fssGrades[0]);
        assertEquals("fss grade[1] -3", 1, fssGrades[1]);       
    }
   
    private ComponentInstance createGrade(int grade) {
        Properties props = new Properties();
        props.put("grade", new Integer(grade));
        return helper.createComponentInstance(gradeFactory, props);
    }

}
TOP

Related Classes of org.apache.felix.ipojo.test.scenarios.service.dependency.comparator.ComparatorTestCase

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.