package com.softwaremill.common.cdi.autofactory.logger;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.testng.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.testng.annotations.Test;
import com.softwaremill.common.arquillian.ManifestUtil;
import com.softwaremill.common.cdi.autofactory.CreatedWith;
import com.softwaremill.common.cdi.logger.LoggerProducer;
import javax.inject.Inject;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class TestInjectDataAndLogger extends Arquillian {
@Deployment
public static JavaArchive createTestArchive() {
JavaArchive ar = ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClass(LoggerProducer.class)
.addClass(InjectDataAndLoggerConstructor.class)
.addClass(InjectDataAndLoggerField.class)
.addPackage(CreatedWith.class.getPackage());
return ManifestUtil.addEmptyBeansXml(ar);
}
@Inject
private InjectDataAndLoggerConstructor.Factory injectDataAndLoggerConstructorFactory;
@Inject
private InjectDataAndLoggerField.Factory injectDataAndLoggerFieldFactory;
@Test
public void testField() {
assertThat(injectDataAndLoggerFieldFactory.create("z").getData()).isEqualTo("z");
assertThat(injectDataAndLoggerFieldFactory.create("z").getLogger()).isNotNull();
}
@Test
public void testConstructor() {
assertThat(injectDataAndLoggerConstructorFactory.create("z").getData()).isEqualTo("z");
assertThat(injectDataAndLoggerConstructorFactory.create("z").getLogger()).isNotNull();
}
}