Commit b05799466d64fc6f48897de5614712b7e4293715

Authored by Thiago Mariano
1 parent 07d06b49
Exists in master

Testes unitários da classe AbstractBootstrap

impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractBootstrapTest.java
... ... @@ -41,88 +41,173 @@ import static org.powermock.api.easymock.PowerMock.mockStatic;
41 41 import static org.powermock.api.easymock.PowerMock.replayAll;
42 42 import static org.powermock.api.easymock.PowerMock.verifyAll;
43 43  
44   -import java.util.Locale;
45   -
46 44 import javax.enterprise.inject.spi.AfterBeanDiscovery;
47 45 import javax.inject.Scope;
48 46  
49 47 import org.easymock.EasyMock;
50   -import org.junit.Ignore;
  48 +import org.junit.After;
  49 +import org.junit.Assert;
51 50 import org.junit.Test;
52 51 import org.junit.runner.RunWith;
53 52 import org.powermock.api.easymock.PowerMock;
54 53 import org.powermock.core.classloader.annotations.PrepareForTest;
55 54 import org.powermock.modules.junit4.PowerMockRunner;
56   -import org.powermock.reflect.Whitebox;
57 55 import org.slf4j.Logger;
58 56  
59 57 import br.gov.frameworkdemoiselle.internal.context.Contexts;
60 58 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext;
61 59 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer;
62   -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer;
63   -import br.gov.frameworkdemoiselle.util.ResourceBundle;
64 60  
65   -@Ignore
66 61 @RunWith(PowerMockRunner.class)
67 62 @PrepareForTest({ LoggerProducer.class, Contexts.class })
68 63 public class AbstractBootstrapTest {
69 64  
  65 + @After
  66 + public void afterTests() {
  67 + for(int x=0; x < Contexts.getActiveContexts().size(); x++)
  68 + Contexts.getActiveContexts().remove(x);
  69 +
  70 + for(int x=0; x < Contexts.getInactiveContexts().size(); x++)
  71 + Contexts.getInactiveContexts().remove(x);
  72 + }
  73 +
70 74 @Test
71   - @SuppressWarnings({ "unchecked", "static-access" })
72   - public void testAddContext() {
  75 + @SuppressWarnings({ "unchecked"})
  76 + public void testAddContextThatIsNotActive() {
73 77 mockStatic(LoggerProducer.class);
74   - mockStatic(Contexts.class);
75   -
76 78 Logger logger = PowerMock.createMock(Logger.class);
77 79 logger.trace(EasyMock.anyObject(String.class));
78   -
79 80 expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger);
  81 + replayAll(logger, LoggerProducer.class);
80 82  
81   - ResourceBundle bundle = PowerMock.createMock(ResourceBundle.class);
82   - expect(bundle.getString(EasyMock.anyObject(String.class), EasyMock.anyObject(String.class))).andReturn(null);
  83 + ThreadLocalContext context = new ThreadLocalContext(Scope.class);
83 84  
84   - ResourceBundleProducer bundleFactory = PowerMock.createMock(ResourceBundleProducer.class);
85   - expect(bundleFactory.create(EasyMock.anyObject(String.class), EasyMock.anyObject(Locale.class))).andReturn(
86   - bundle);
  85 + AbstractBootstrap.addContext(context, null);
87 86  
88   - Whitebox.setInternalState(AbstractBootstrap.class, "bundleFactory", bundleFactory);
  87 + Assert.assertTrue(context.isActive());
  88 + Assert.assertEquals(1, Contexts.getActiveContexts().size());
  89 + }
  90 +
  91 + @Test
  92 + @SuppressWarnings({ "unchecked"})
  93 + public void testAddContextThatIsActive() {
  94 + mockStatic(LoggerProducer.class);
  95 + Logger logger = PowerMock.createMock(Logger.class);
  96 + logger.trace(EasyMock.anyObject(String.class));
  97 + expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger);
  98 + replayAll(logger, LoggerProducer.class);
89 99  
90 100 ThreadLocalContext context = new ThreadLocalContext(Scope.class);
91   - Contexts.add(EasyMock.anyObject(ThreadLocalContext.class), EasyMock.anyObject(AfterBeanDiscovery.class));
92   - replayAll(bundle, bundleFactory, logger, LoggerProducer.class, Contexts.class);
93   -
  101 + Contexts.getActiveContexts().add(context);
  102 +
94 103 AbstractBootstrap.addContext(context, null);
95 104  
96   - verifyAll();
  105 + Assert.assertFalse(context.isActive());
  106 + Assert.assertEquals(1, Contexts.getInactiveContexts().size());
97 107 }
98 108  
99 109 @Test
100   - @SuppressWarnings({ "unchecked", "static-access" })
101   - public void testDisableContext() {
  110 + @SuppressWarnings({ "unchecked"})
  111 + public void testAddContextThatEventIsNotNull() {
102 112 mockStatic(LoggerProducer.class);
103   - mockStatic(Contexts.class);
104   -
105 113 Logger logger = PowerMock.createMock(Logger.class);
106 114 logger.trace(EasyMock.anyObject(String.class));
107 115 expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger);
  116 + AfterBeanDiscovery event = PowerMock.createMock(AfterBeanDiscovery.class);
108 117  
109   - ResourceBundle bundle = PowerMock.createMock(ResourceBundle.class);
110   - expect(bundle.getString(EasyMock.anyObject(String.class), EasyMock.anyObject(String.class))).andReturn(null);
  118 + ThreadLocalContext context = new ThreadLocalContext(Scope.class);
  119 + event.addContext(context);
  120 +
  121 + replayAll(logger, LoggerProducer.class);
111 122  
112   - ResourceBundleProducer bundleFactory = PowerMock.createMock(ResourceBundleProducer.class);
113   - expect(bundleFactory.create(EasyMock.anyObject(String.class), EasyMock.anyObject(Locale.class))).andReturn(
114   - bundle);
115 123  
116   - Whitebox.setInternalState(AbstractBootstrap.class, "bundleFactory", bundleFactory);
  124 + AbstractBootstrap.addContext(context, event);
  125 +
  126 + Assert.assertTrue(context.isActive());
  127 + Assert.assertEquals(1, Contexts.getActiveContexts().size());
  128 +
  129 + verifyAll();
  130 + }
  131 +
  132 + @Test
  133 + @SuppressWarnings({ "unchecked"})
  134 + public void testDisableContextIsActive() {
  135 + mockStatic(LoggerProducer.class);
  136 + Logger logger = PowerMock.createMock(Logger.class);
  137 + logger.trace(EasyMock.anyObject(String.class));
  138 + logger.trace(EasyMock.anyObject(String.class));
  139 + expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger).anyTimes();
117 140  
118 141 ThreadLocalContext context = new ThreadLocalContext(Scope.class);
  142 +
  143 + replayAll(logger, LoggerProducer.class);
119 144  
120   - Contexts.remove(context);
121   - replayAll(bundle, bundleFactory, logger, LoggerProducer.class, Contexts.class);
122 145  
  146 + AbstractBootstrap.addContext(context, null);
  147 +
  148 + Assert.assertTrue(context.isActive());
  149 + Assert.assertEquals(1, Contexts.getActiveContexts().size());
  150 +
123 151 AbstractBootstrap.disableContext(context);
  152 +
  153 + Assert.assertFalse(context.isActive());
  154 + Assert.assertEquals(0, Contexts.getActiveContexts().size());
  155 +
  156 + }
  157 +
  158 + @Test
  159 + @SuppressWarnings({ "unchecked"})
  160 + public void testDisableContextIsNotActive() {
  161 + mockStatic(LoggerProducer.class);
  162 + Logger logger = PowerMock.createMock(Logger.class);
  163 + logger.trace(EasyMock.anyObject(String.class));
  164 + logger.trace(EasyMock.anyObject(String.class));
  165 + expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger).anyTimes();
124 166  
125   - verifyAll();
  167 + ThreadLocalContext context = new ThreadLocalContext(Scope.class);
  168 +
  169 + replayAll(logger, LoggerProducer.class);
  170 +
  171 + Contexts.getInactiveContexts().add(context);
  172 + Assert.assertEquals(1, Contexts.getInactiveContexts().size());
  173 +
  174 + AbstractBootstrap.disableContext(context);
  175 +
  176 + Assert.assertEquals(0, Contexts.getInactiveContexts().size());
  177 +
126 178 }
  179 +
  180 + @Test
  181 + @SuppressWarnings({ "unchecked"})
  182 + public void testDisableContextIsActiveAndExistTheSameScopeInTheInactives() {
  183 + mockStatic(LoggerProducer.class);
  184 + Logger logger = PowerMock.createMock(Logger.class);
  185 + logger.trace(EasyMock.anyObject(String.class));
  186 + logger.trace(EasyMock.anyObject(String.class));
  187 + expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger).anyTimes();
127 188  
  189 + ThreadLocalContext context = new ThreadLocalContext(Scope.class);
  190 +
  191 + replayAll(logger, LoggerProducer.class);
  192 +
  193 + AbstractBootstrap.addContext(context, null);
  194 +
  195 + ThreadLocalContext context2 = new ThreadLocalContext(Scope.class);
  196 + context2.setActive(false);
  197 + Contexts.getInactiveContexts().add(context2);
  198 +
  199 + Assert.assertTrue(context.isActive());
  200 + Assert.assertEquals(1, Contexts.getActiveContexts().size());
  201 +
  202 + Assert.assertFalse(context2.isActive());
  203 + Assert.assertEquals(1, Contexts.getInactiveContexts().size());
  204 +
  205 + AbstractBootstrap.disableContext(context);
  206 +
  207 + Assert.assertFalse(context.isActive());
  208 + Assert.assertTrue(context2.isActive());
  209 + Assert.assertEquals(1, Contexts.getActiveContexts().size());
  210 + Assert.assertEquals(0, Contexts.getInactiveContexts().size());
  211 +
  212 + }
128 213 }
... ...