001 package sysModel.env.tests;
002
003 import model.ILambda;
004 import sysModel.env.DeactivatableLambda;
005 import junit.framework.TestCase;
006
007 /**
008 * Test cases for DeactivatableLambda.
009 *
010 * @author Mathias Ricken
011 */
012 public class Test_DeactivatableLambda extends TestCase {
013 /**
014 * Test not deactivating a lambda.
015 */
016 public void testDontDeactivate() {
017 final String msg = "should be thrown";
018 try {
019 ILambda lambda = new ILambda() {
020 /**
021 * Execute command.
022 */
023 public Object apply(Object param) {
024 throw new RuntimeException(msg);
025 }
026 };
027 DeactivatableLambda deactivatable = new DeactivatableLambda(lambda);
028 deactivatable.apply(null);
029 fail("Lambda was not executed.");
030 }
031 catch (RuntimeException e) {
032 if (!e.getMessage().equals(msg)) {
033 fail("Wrong exception thrown.");
034 }
035 }
036 }
037
038 /**
039 * Test not deactivating a lambda.
040 */
041 public void testDontDeactivate2() {
042 ILambda lambda = new ILambda() {
043 /**
044 * Execute command.
045 */
046 public Object apply(Object param) {
047 try {
048 return new Integer(123 * ((Integer) param).intValue());
049 }
050 catch (Exception e) {
051 fail("Failed to cast parameter: " + e.toString());
052 return null;
053 }
054 }
055 };
056 DeactivatableLambda deactivatable = new DeactivatableLambda(lambda);
057 try {
058 Integer i = (Integer) deactivatable.apply(new Integer(33));
059 if (33 * 123 != i.intValue()) {
060 fail("Incorrect return value.");
061 }
062 }
063 catch (Exception e) {
064 fail("Failed to cast return value: " + e.toString());
065 }
066 }
067
068 /**
069 * Test deactivating a lambda.
070 */
071 public void testDeactivate() {
072 ILambda lambda = new ILambda() {
073 /**
074 * Execute command.
075 */
076 public Object apply(Object param) {
077 fail("Should not be executed.");
078 return null;
079 }
080 };
081 DeactivatableLambda deactivatable = new DeactivatableLambda(lambda);
082 deactivatable.deactivate();
083 deactivatable.apply(null);
084 }
085 }