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,88 +41,173 @@ import static org.powermock.api.easymock.PowerMock.mockStatic;
41 import static org.powermock.api.easymock.PowerMock.replayAll; 41 import static org.powermock.api.easymock.PowerMock.replayAll;
42 import static org.powermock.api.easymock.PowerMock.verifyAll; 42 import static org.powermock.api.easymock.PowerMock.verifyAll;
43 43
44 -import java.util.Locale;  
45 -  
46 import javax.enterprise.inject.spi.AfterBeanDiscovery; 44 import javax.enterprise.inject.spi.AfterBeanDiscovery;
47 import javax.inject.Scope; 45 import javax.inject.Scope;
48 46
49 import org.easymock.EasyMock; 47 import org.easymock.EasyMock;
50 -import org.junit.Ignore; 48 +import org.junit.After;
  49 +import org.junit.Assert;
51 import org.junit.Test; 50 import org.junit.Test;
52 import org.junit.runner.RunWith; 51 import org.junit.runner.RunWith;
53 import org.powermock.api.easymock.PowerMock; 52 import org.powermock.api.easymock.PowerMock;
54 import org.powermock.core.classloader.annotations.PrepareForTest; 53 import org.powermock.core.classloader.annotations.PrepareForTest;
55 import org.powermock.modules.junit4.PowerMockRunner; 54 import org.powermock.modules.junit4.PowerMockRunner;
56 -import org.powermock.reflect.Whitebox;  
57 import org.slf4j.Logger; 55 import org.slf4j.Logger;
58 56
59 import br.gov.frameworkdemoiselle.internal.context.Contexts; 57 import br.gov.frameworkdemoiselle.internal.context.Contexts;
60 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext; 58 import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext;
61 import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; 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 @RunWith(PowerMockRunner.class) 61 @RunWith(PowerMockRunner.class)
67 @PrepareForTest({ LoggerProducer.class, Contexts.class }) 62 @PrepareForTest({ LoggerProducer.class, Contexts.class })
68 public class AbstractBootstrapTest { 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 @Test 74 @Test
71 - @SuppressWarnings({ "unchecked", "static-access" })  
72 - public void testAddContext() { 75 + @SuppressWarnings({ "unchecked"})
  76 + public void testAddContextThatIsNotActive() {
73 mockStatic(LoggerProducer.class); 77 mockStatic(LoggerProducer.class);
74 - mockStatic(Contexts.class);  
75 -  
76 Logger logger = PowerMock.createMock(Logger.class); 78 Logger logger = PowerMock.createMock(Logger.class);
77 logger.trace(EasyMock.anyObject(String.class)); 79 logger.trace(EasyMock.anyObject(String.class));
78 -  
79 expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger); 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 ThreadLocalContext context = new ThreadLocalContext(Scope.class); 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 AbstractBootstrap.addContext(context, null); 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 @Test 109 @Test
100 - @SuppressWarnings({ "unchecked", "static-access" })  
101 - public void testDisableContext() { 110 + @SuppressWarnings({ "unchecked"})
  111 + public void testAddContextThatEventIsNotNull() {
102 mockStatic(LoggerProducer.class); 112 mockStatic(LoggerProducer.class);
103 - mockStatic(Contexts.class);  
104 -  
105 Logger logger = PowerMock.createMock(Logger.class); 113 Logger logger = PowerMock.createMock(Logger.class);
106 logger.trace(EasyMock.anyObject(String.class)); 114 logger.trace(EasyMock.anyObject(String.class));
107 expect(LoggerProducer.create(EasyMock.anyObject(Class.class))).andReturn(logger); 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 ThreadLocalContext context = new ThreadLocalContext(Scope.class); 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 AbstractBootstrap.disableContext(context); 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 }