Author: gavin.king(a)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;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@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;
+
+@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;
+
+@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;
+
+@Local
+public interface Translator {
+ public String translate(String sentence);
+}
Show replies by date