Examples of DroneContext


Examples of org.jboss.arquillian.drone.spi.DroneContext

        Object instance = new NonArquillianClass();
        Method testMethod = NonArquillianClass.class.getMethod("someMethod", MockDrone.class);

        fire(new BeforeSuite());

        DroneContext context = getManager().getContext(ApplicationContext.class).getObjectStore().get(DroneContext
                .class);
        Assert.assertNotNull("DroneContext was created in the context", context);

        TestEnricher testEnricher = serviceLoader.onlyOne(TestEnricher.class);
        testEnricher.enrich(instance);
        Object[] parameters = testEnricher.resolve(testMethod);

        DronePoint<MockDrone> classDronePoint = new DronePointImpl<MockDrone>(MockDrone.class,
                DronePoint.Lifecycle.CLASS, AnnotationMocks.drone());
        Assert.assertTrue("Class drone created", context.get(classDronePoint).isInstantiated());

        DronePoint<MockDrone> methodDronePoint = new DronePointImpl<MockDrone>(MockDrone.class,
                DronePoint.Lifecycle.METHOD, AnnotationMocks.drone());
        Assert.assertTrue("Method drone created", context.get(methodDronePoint).isInstantiated());

        testMethod.invoke(instance, parameters);


    }
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

                MockDrone.class, MockDrone.class);

        getManager().getContext(TestContext.class).activate(instance);
        fire(new BeforeSuite());

        DroneContext context = getManager()
                .getContext(ApplicationContext.class).getObjectStore().get(DroneContext.class);
        Assert.assertNotNull("DroneContext was created in the context", context);

        DroneRegistry registry = getManager().getContext(SuiteContext.class).getObjectStore().get(DroneRegistry.class);
        Assert.assertNotNull("Drone registry was created in the context", registry);
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

        createDroneCallable(registry, injectionPoint);
    }

    private <DRONE> void configureDrone(DroneRegistry registry, InjectionPoint<DRONE> injectionPoint) {
        ArquillianDescriptor descriptor = arquillianDescriptor.get();
        DroneContext context = droneContext.get();
        Validate.stateNotNull(descriptor, "ArquillianDescriptor should not be null");
        Validate.stateNotNull(context, "DroneContext should be available while working with method scoped instances");

        if (context.isDroneConfigurationStored(injectionPoint)) {
            logger.log(Level.WARNING, "Couldn''t configure drone for injection point {0}, " +
                    "because it was already configured!", injectionPoint);
            return;
        }

        Configurator<DRONE, ?> configurator = registry.getEntryFor(injectionPoint.getDroneType(), Configurator.class);

        beforeDroneConfiguredEvent.fire(new BeforeDroneConfigured(configurator, injectionPoint));

        DroneConfiguration configuration;
        // If nobody else provided the configuration
        if (!context.isDroneConfigurationStored(injectionPoint)) {
            configuration = configurator.createConfiguration(descriptor, injectionPoint);

            context.storeDroneConfiguration(injectionPoint, configuration);
        } else {
            configuration = context.getDroneConfiguration(injectionPoint, DroneConfiguration.class);
        }

        afterDroneConfiguredEvent.fire(new AfterDroneConfigured(configuration, injectionPoint));
    }
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

        afterDroneConfiguredEvent.fire(new AfterDroneConfigured(configuration, injectionPoint));
    }

    private <DRONE> void createDroneCallable(DroneRegistry registry, final InjectionPoint<DRONE> injectionPoint) {
        final DroneContext context = droneContext.get();

        if (context.isFutureDroneStored(injectionPoint)) {
            logger.log(Level.WARNING, "Couldn''t create drone callable for injection point {0}, because it was already created!", injectionPoint);
            return;
        }

        final Instantiator instantiator = registry.getEntryFor(injectionPoint.getDroneType(), Instantiator.class);
        if (logger.isLoggable(Level.FINE)) {
            logger.fine("Using instantiator defined in class: " + instantiator.getClass().getName() + ", " +
                    "with precedence " + instantiator.getPrecedence());
        }

        beforeDroneCallableCreatedEvent.fire(new BeforeDroneCallableCreated(instantiator, injectionPoint));

        // create future instance
        CachingCallable futureDrone = new CachingCallableImpl<DRONE>() {
            @Override
            protected DRONE createInstance() throws Exception {
                DroneConfiguration<?> configuration = context.getDroneConfiguration(injectionPoint,
                        DroneConfiguration.class);
                return (DRONE) instantiator.createInstance(configuration);
            }
        };

        context.storeFutureDrone(injectionPoint, futureDrone);

        afterDroneCallableCreatedEvent.fire(new AfterDroneCallableCreated(injectionPoint));
    }
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

    @Inject
    private Instance<DroneContext> droneContext;

    public void destroyDrone(@Observes DestroyDrone command) {
        DroneContext context = droneContext.get();
        InjectionPoint<?> injectionPoint = command.getInjectionPoint();
        if (injectionPoint == null || !context.isDroneConfigurationStored(injectionPoint)) {
            return;
        }

        boolean wasInstantiated = context.isDroneInstantiated(injectionPoint);
        if (wasInstantiated) {
            Destructor destructor = getDestructorFor(injectionPoint.getDroneType());
            Object drone = context.getDrone(injectionPoint);

            droneLifecycleEvent.fire(new BeforeDroneDestroyed(drone, injectionPoint));

            // we need to get drone once again, at it might get modified by observers on previous event
            drone = context.getDrone(injectionPoint);

            destructor.destroyInstance(drone);
        }

        context.removeDrone(injectionPoint);
        context.removeDroneConfiguration(injectionPoint);

        if (wasInstantiated) {
            droneLifecycleEvent.fire(new AfterDroneDestroyed(injectionPoint));
        }
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

    @Inject
    private Event<DroneLifecycleEvent> droneLifecycleEvent;

    @Override
    public void enrich(Object testCase) {
        DroneContext context = droneContext.get();

        Map<Field, InjectionPoint<?>> injectionPoints = InjectionPoints.fieldsInClass(testCase.getClass());

        for (Field field : injectionPoints.keySet()) {
            // omit setting if already set
            if (SecurityActions.getFieldValue(testCase, field) != null) {
                log.log(Level.FINER, "Skipped injection of field {0}", field.getName());
                continue;
            }

            InjectionPoint<?> injectionPoint = injectionPoints.get(field);

            ensureInjectionPointPrepared(injectionPoint);

            log.log(Level.FINE, "Injecting @Drone for field {0}, injection point {1}",
                    new Object[] { injectionPoint.getDroneType().getSimpleName(), injectionPoint }
            );

            Object drone = context.getDrone(injectionPoint);
            Validate.stateNotNull(drone, "Retrieved a null from Drone Context, " +
                            "which is not a valid Drone browser object. \nClass: {0}, field: {1}, injection point: {2}",
                    testCase.getClass().getName(), field.getName(), injectionPoint
            );
            SecurityActions.setFieldValue(testCase, field, drone);
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

        }
    }

    @Override
    public Object[] resolve(Method method) {
        DroneContext context = droneContext.get();
        InjectionPoint<?>[] injectionPoints = InjectionPoints.parametersInMethod(method);
        Object[] resolution = new Object[injectionPoints.length];
        for (int i = 0; i < injectionPoints.length; i++) {
            InjectionPoint<?> injectionPoint = injectionPoints[i];
            if (injectionPoint == null) {
                resolution[i] = null;
                continue;
            }

            ensureInjectionPointPrepared(injectionPoint);

            log.log(Level.FINE, "Injecting @Drone for method {0}, injection point {1}",
                    new Object[] { method.getName(), injectionPoint }
            );

            Object drone = context.getDrone(injectionPoint);
            Validate.stateNotNull(drone, "Retrieved a null from Drone Context, which is not a valid Drone browser object" +
                    ".\nMethod: {0}, injection point: {1},", method.getName(), injectionPoint);
            resolution[i] = drone;
        }
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

    @Inject
    private Event<DestroyDrone> destroyDroneCommand;

    public void managerStarted(@Observes ManagerStarted event) {
        try {
            DroneContext context = injector.get().inject(new DroneContextImpl());
            droneContext.set(context);
        } catch (TypeNotPresentException e) {
            log.log(Level.SEVERE,
                "Unable to create Drone Context due to missing services on classpath. Please make sure to use Arquillian Core 1.1.4.Final or later.");
            throw new IllegalStateException("Unable to create Drone Context due to missing services on classpath. Please make sure to use Arquillian Core 1.1.4.Final or later.",
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

                e);
        }
    }

    public void configureDroneExtension(@Observes BeforeSuite event) {
        DroneContext context = droneContext.get();

        if (context.getGlobalDroneConfiguration(DroneConfiguration.class) != null) {
            return;
        }

        beforeDroneExtensionConfiguredEvent.fire(new BeforeDroneExtensionConfigured());

        if (context.getGlobalDroneConfiguration(DroneConfiguration.class) == null) {
            GlobalDroneConfiguration configuration =
                new GlobalDroneConfiguration().configure(arquillianDescriptor.get(), null);
            context.setGlobalDroneConfiguration(configuration);
        }

        afterDroneExtensionConfiguredEvent.fire(new AfterDroneExtensionConfigured());
    }
View Full Code Here

Examples of org.jboss.arquillian.drone.spi.DroneContext

            createDroneConfigurationCommand.fire(new PrepareDrone(injectionPoint));
        }
    }

    public void after(@Observes After event) {
        DroneContext context = droneContext.get();
        LifecycleFilter lifecycleFilter = new LifecycleFilter(InjectionPoint.Lifecycle.METHOD);
        List<InjectionPoint<?>> injectionPoints = context.find(Object.class, lifecycleFilter);

        for (InjectionPoint<?> injectionPoint : injectionPoints) {
            destroyDroneCommand.fire(new DestroyDrone(injectionPoint));
        }
    }
View Full Code Here
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.