[webbeans-commits] Webbeans SVN: r270 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Nov 6 15:01:03 EST 2008
Author: gavin.king at jboss.com
Date: 2008-11-06 15:01:03 -0500 (Thu, 06 Nov 2008)
New Revision: 270
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
Log:
another example
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Mock.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.examples;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+public @interface Mock
+{
+
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/MockSentenceTranslator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.examples;
+
+ at Mock
+public class MockSentenceTranslator implements Translator {
+ public String translate(String sentence) {
+ return "Lorem ipsum dolor sit amet";
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceParser.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.examples;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class SentenceParser {
+ public List<String> parse(String text) {
+ return Arrays.asList( text.split("[.?]") );
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/SentenceTranslator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.examples;
+
+import javax.ejb.Stateless;
+
+ at Stateless
+public class SentenceTranslator implements Translator {
+public String translate(String sentence) {
+ throw new UnsupportedOperationException();
+}
+}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 17:57:49 UTC (rev 269)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Tests.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -12,14 +12,8 @@
{
@Test
public void testGameGenerator() throws Exception {
- SimpleBean<Game> gameBean = Util.createSimpleWebBean(Game.class, manager);
- SimpleBean<Generator> generatorBean = Util.createSimpleWebBean(Generator.class, manager);
- Method method = Generator.class.getDeclaredMethod("next");
- method.setAccessible(true);
- ProducerMethodBean<Integer> nextBean = Util.createProducerMethodBean(int.class, method, manager, generatorBean);
- manager.addBean(gameBean);
- manager.addBean(generatorBean);
- manager.addBean(nextBean);
+ setupGameGenerator();
+
Game game1 = manager.getInstanceByType(Game.class);
Game game2 = manager.getInstanceByType(Game.class);
assert game1!=game2;
@@ -29,4 +23,57 @@
assert gen1.getRandom()!=null;
assert gen1.getRandom()==gen2.getRandom();
}
+
+ private void setupGameGenerator() throws NoSuchMethodException
+ {
+ SimpleBean<Game> gameBean = Util.createSimpleWebBean(Game.class, manager);
+ SimpleBean<Generator> generatorBean = Util.createSimpleWebBean(Generator.class, manager);
+ Method method = Generator.class.getDeclaredMethod("next");
+ method.setAccessible(true);
+ ProducerMethodBean<Integer> nextBean = Util.createProducerMethodBean(int.class, method, manager, generatorBean);
+
+ manager.addBean(gameBean);
+ manager.addBean(generatorBean);
+ manager.addBean(nextBean);
+ }
+
+ @Test
+ public void testMockSentenceTranslator() throws Exception {
+ setupTextTranslator();
+
+ manager.getEnabledDeploymentTypes().add(Mock.class);
+
+ TextTranslator tt2 = manager.getInstanceByType(TextTranslator.class);
+ assert "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.".equals( tt2.translate("Hello world. How's tricks?") );
+ }
+
+ @Test
+ public void testSentenceTranslator() throws Exception {
+ setupTextTranslator();
+
+ TextTranslator tt1 = manager.getInstanceByType(TextTranslator.class);
+ try {
+ tt1.translate("hello world");
+ assert false;
+ }
+ catch (UnsupportedOperationException uoe)
+ {
+ //expected
+ }
+
+ }
+
+ private void setupTextTranslator()
+ {
+ SimpleBean<SentenceParser> spBean = Util.createSimpleWebBean(SentenceParser.class, manager);
+ SimpleBean<SentenceTranslator> stBean = Util.createSimpleWebBean(SentenceTranslator.class, manager);
+ SimpleBean<MockSentenceTranslator> mstBean = Util.createSimpleWebBean(MockSentenceTranslator.class, manager);
+ SimpleBean<TextTranslator> ttBean = Util.createSimpleWebBean(TextTranslator.class, manager);
+
+ manager.addBean(spBean);
+ manager.addBean(stBean);
+ manager.addBean(mstBean);
+ manager.addBean(ttBean);
+ }
+
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/TextTranslator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.examples;
+
+import javax.webbeans.Initializer;
+
+public class TextTranslator {
+ private SentenceParser sentenceParser;
+ private Translator sentenceTranslator;
+
+ @Initializer
+ TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator) {
+ this.sentenceParser = sentenceParser;
+ this.sentenceTranslator = sentenceTranslator;
+ }
+
+ public String translate(String text) {
+ StringBuilder sb = new StringBuilder();
+ for (String sentence: sentenceParser.parse(text)) {
+ sb.append(sentenceTranslator.translate(sentence)).append(". ");
+ }
+ return sb.toString().trim();
+ }
+
+}
\ No newline at end of file
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/examples/Translator.java 2008-11-06 20:01:03 UTC (rev 270)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.examples;
+
+import javax.ejb.Local;
+
+ at Local
+public interface Translator {
+ public String translate(String sentence);
+}
More information about the weld-commits
mailing list