Skip to content

Commit

Permalink
Depend directly on the required event
Browse files Browse the repository at this point in the history
Instead of depending on BeforeSuite and assuming a
given Object is created before that event, depend on the Creation
of the Object instead.
  • Loading branch information
aslakknutsen committed Jun 18, 2014
1 parent a08adb0 commit c2f3a48
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,17 @@

package org.jboss.arquillian.spring.integration.client;

import java.util.Collections;
import java.util.Map;

import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
import org.jboss.arquillian.config.descriptor.api.ExtensionDef;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.InstanceProducer;
import org.jboss.arquillian.core.api.annotation.ApplicationScoped;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.spring.integration.SpringIntegrationConstants;
import org.jboss.arquillian.spring.integration.configuration.SpringIntegrationConfiguration;
import org.jboss.arquillian.test.spi.event.suite.BeforeSuite;

import java.util.Collections;
import java.util.Map;

/**
* <p>Producer that creates the configuration loaded from the arquillian descriptor.</p>
Expand All @@ -39,12 +37,6 @@
*/
public class SpringIntegrationConfigurationProducer {

/**
* <p>Represents the application descriptor.</p>
*/
@Inject
private Instance<ArquillianDescriptor> descriptor;

/**
* <p>Represents the configuration for this extension.</p>
*/
Expand All @@ -57,7 +49,7 @@ public class SpringIntegrationConfigurationProducer {
*
* @param beforeSuiteEvent the event fired before execution of the test suite
*/
public void initConfiguration(@Observes BeforeSuite beforeSuiteEvent) {
public void initConfiguration(@Observes ArquillianDescriptor descriptor) {

SpringIntegrationConfiguration config = getConfiguration(descriptor);

Expand All @@ -71,9 +63,9 @@ public void initConfiguration(@Observes BeforeSuite beforeSuiteEvent) {
*
* @return the created instance of {@link SpringIntegrationConfiguration}
*/
private SpringIntegrationConfiguration getConfiguration(Instance<ArquillianDescriptor> descriptor) {
private SpringIntegrationConfiguration getConfiguration(ArquillianDescriptor descriptor) {

Map<String, String> properties = getExtensionProperties(descriptor.get());
Map<String, String> properties = getExtensionProperties(descriptor);

return new SpringIntegrationConfiguration(properties);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@

package org.jboss.arquillian.spring.integration.client;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.io.File;
import java.io.FileInputStream;

import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.InstanceProducer;
Expand All @@ -28,16 +38,6 @@
import org.junit.Test;
import org.mockito.ArgumentCaptor;

import java.io.File;
import java.io.FileInputStream;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

/**
* <p>Tests {@link SpringIntegrationConfigurationProducer} class.</p>
*
Expand Down Expand Up @@ -67,16 +67,12 @@ public void setUp() {
@Test
public void testInitConfigurationDefault() throws Exception {

BeforeSuite event = new BeforeSuite();

ArquillianDescriptor descriptor = Descriptors.create(ArquillianDescriptor.class);

injectDescriptor(descriptor);

InstanceProducer<SpringIntegrationConfiguration> mockProducer = mock(InstanceProducer.class);
TestReflectionHelper.setFieldValue(instance, "extensionConfiguration", mockProducer);

instance.initConfiguration(event);
instance.initConfiguration(descriptor);

ArgumentCaptor<SpringIntegrationConfiguration> argument =
ArgumentCaptor.forClass(SpringIntegrationConfiguration.class);
Expand All @@ -96,17 +92,13 @@ public void testInitConfigurationDefault() throws Exception {
@Test
public void testInitConfiguration() throws Exception {

BeforeSuite event = new BeforeSuite();

ArquillianDescriptor descriptor = Descriptors.importAs(ArquillianDescriptor.class).fromStream(
new FileInputStream(new File("src/test/resources", "arquillian.xml")));

injectDescriptor(descriptor);

InstanceProducer<SpringIntegrationConfiguration> mockProducer = mock(InstanceProducer.class);
TestReflectionHelper.setFieldValue(instance, "extensionConfiguration", mockProducer);

instance.initConfiguration(event);
instance.initConfiguration(descriptor);

ArgumentCaptor<SpringIntegrationConfiguration> argument =
ArgumentCaptor.forClass(SpringIntegrationConfiguration.class);
Expand All @@ -120,18 +112,4 @@ public void testInitConfiguration() throws Exception {
"org.springframework.context.annotation.AnnotationConfigApplicationContext",
argument.getValue().getProperty("customAnnotationContextClass"));
}

/**
* <p>Initialize the arquillian descriptor.</p>
*
* @param descriptor the arquillian descriptor
*
* @throws IllegalAccessException if any error occurs
* @throws NoSuchFieldException if any error occurs
*/
private void injectDescriptor(ArquillianDescriptor descriptor) throws IllegalAccessException, NoSuchFieldException {
Instance<ArquillianDescriptor> mockDescriptorInstance = mock(Instance.class);
when(mockDescriptorInstance.get()).thenReturn(descriptor);
TestReflectionHelper.setFieldValue(instance, "descriptor", mockDescriptorInstance);
}
}

0 comments on commit c2f3a48

Please sign in to comment.