Package com.github.jsr330.spi.config.builder

Source Code of com.github.jsr330.spi.config.builder.BindingConditionsTest

package com.github.jsr330.spi.config.builder;

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

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.util.Map;

import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Qualifier;
import javax.inject.Singleton;

import org.atinject.tck.auto.Drivers;
import org.atinject.tck.auto.Seat;
import org.atinject.tck.auto.Tire;
import org.junit.Test;

import com.github.jsr330.spi.ClassInjector;

public class BindingConditionsTest {
   
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    BindingCondition<Object> nonConfirming = new BindingCondition<Object>() {
       
        @Override
        public boolean fulfilled(ClassInjector injector, Class<Object> type, Map<String, Class<? extends Object>[]> inheritanceTree, Annotation qualifier,
                ClassLoader classLoader) {
            return false;
        }
       
    };
    BindingCondition<Object> confirming = new BindingCondition<Object>() {
       
        @Override
        public boolean fulfilled(ClassInjector injector, Class<Object> type, Map<String, Class<? extends Object>[]> inheritanceTree, Annotation qualifier,
                ClassLoader classLoader) {
            return true;
        }
       
    };
   
    @Test
    public void qualifierIs() {
        assertTrue(BindingConditions.qualifierIs(Tire.class, Drivers.class).fulfilled(null, Tire.class, null, new Drivers() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Drivers.class;
            }
           
        }, classLoader));
    }
   
    @Test
    public void qualifierIsNot() {
        assertFalse(BindingConditions.qualifierIs(Tire.class, Inject.class).fulfilled(null, Tire.class, null, new Drivers() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Drivers.class;
            }
           
        }, classLoader));
    }
   
    @Test
    public void isNamed() {
        assertTrue(BindingConditions.isNamed(Tire.class, "spare").fulfilled(null, Tire.class, null, new Named() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Named.class;
            }
           
            @Override
            public String value() {
                return "spare";
            }
           
        }, classLoader));
    }
   
    @Test
    public void isNotNamed() {
        assertFalse(BindingConditions.isNamed(Tire.class, "spare").fulfilled(null, Tire.class, null, new Named() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Named.class;
            }
           
            @Override
            public String value() {
                return "notspare";
            }
           
        }, classLoader));
    }
   
    @Test
    public void isNamedIgnoringCase() {
        assertTrue(BindingConditions.isNamedIgnoringCase(Tire.class, "spare").fulfilled(null, Tire.class, null, new Named() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Named.class;
            }
           
            @Override
            public String value() {
                return "SPARE";
            }
           
        }, classLoader));
    }
   
    @Test
    public void isNotNamedIgnoringCase() {
        assertFalse(BindingConditions.isNamedIgnoringCase(Tire.class, "spare").fulfilled(null, Tire.class, null, new Named() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Named.class;
            }
           
            @Override
            public String value() {
                return "notspare";
            }
           
        }, classLoader));
    }
   
    @Test
    public void annotationIsPresent() {
        assertTrue(BindingConditions.annotationIsPresent(Seat.class, Singleton.class).fulfilled(null, Seat.class, null, new Singleton() {
           
            @Override
            public Class<? extends Annotation> annotationType() {
                return Singleton.class;
            }
           
        }, classLoader));
    }
   
    @Test
    public void annotationNotPresent() {
        assertFalse(BindingConditions.annotationIsPresent(Seat.class, Inject.class).fulfilled(null, Seat.class, null, null, classLoader));
    }
   
    @SuppressWarnings("unchecked")
    @Test
    public void notAllAnnotationsArePresent() {
        assertFalse(BindingConditions.allAnnotationsArePresent(Seat.class, Singleton.class, Inject.class).fulfilled(null, Seat.class, null, null, classLoader));
    }
   
    @SuppressWarnings("unchecked")
    @Test
    public void allAnnotationsArePresent() {
        assertTrue(BindingConditions.allAnnotationsArePresent(Seat.class, Singleton.class).fulfilled(null, Seat.class, null, null, classLoader));
        assertTrue(BindingConditions.allAnnotationsArePresent(Drivers.class, Retention.class, Qualifier.class).fulfilled(null, Drivers.class, null, null,
                classLoader));
    }
   
    @SuppressWarnings("unchecked")
    @Test
    public void anyAnnotationsIsPresent() {
        assertTrue(BindingConditions.anyAnnotationIsPresent(Seat.class, Singleton.class, Inject.class).fulfilled(null, Seat.class, null, null, classLoader));
        assertTrue(BindingConditions.anyAnnotationIsPresent(Seat.class, Singleton.class, Drivers.class).fulfilled(null, Seat.class, null, null, classLoader));
        assertTrue(BindingConditions.anyAnnotationIsPresent(Seat.class, Singleton.class).fulfilled(null, Seat.class, null, null, classLoader));
    }
   
    @SuppressWarnings("unchecked")
    @Test
    public void anyAnnotationsIsNotPresent() {
        assertFalse(BindingConditions.anyAnnotationIsPresent(Seat.class, Inject.class, Qualifier.class).fulfilled(null, Seat.class, null, null, classLoader));
        assertFalse(BindingConditions.anyAnnotationIsPresent(Seat.class, Drivers.class).fulfilled(null, Seat.class, null, null, classLoader));
        assertFalse(BindingConditions.anyAnnotationIsPresent(Seat.class).fulfilled(null, Seat.class, null, null, classLoader));
    }
   
    @SuppressWarnings("unchecked")
    @Test
    public void and() {
        assertTrue(BindingConditions.and(confirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.and(nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertTrue(BindingConditions.and(confirming, confirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.and(nonConfirming, nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.and(confirming, nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.and(nonConfirming, confirming).fulfilled(null, Object.class, null, null, classLoader));
    }
   
    @SuppressWarnings("unchecked")
    @Test
    public void or() {
        assertTrue(BindingConditions.or(confirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.or(nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertTrue(BindingConditions.or(confirming, confirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.or(nonConfirming, nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertTrue(BindingConditions.or(confirming, nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertTrue(BindingConditions.or(nonConfirming, confirming).fulfilled(null, Object.class, null, null, classLoader));
    }
   
    @Test
    public void xor() {
        assertFalse(BindingConditions.xor(confirming, confirming).fulfilled(null, Object.class, null, null, classLoader));
        assertFalse(BindingConditions.xor(nonConfirming, nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertTrue(BindingConditions.xor(confirming, nonConfirming).fulfilled(null, Object.class, null, null, classLoader));
        assertTrue(BindingConditions.xor(nonConfirming, confirming).fulfilled(null, Object.class, null, null, classLoader));
    }
   
}
TOP

Related Classes of com.github.jsr330.spi.config.builder.BindingConditionsTest

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.