From ffe6cfebb128509aa4205d5cb470dae9b49b782d Mon Sep 17 00:00:00 2001 From: jblang94 Date: Sun, 22 Jan 2017 20:47:49 -0800 Subject: [PATCH] Add Java test case for issue #923 --- ...t_StateMachineImplementsInterface.java.txt | 114 ++++++++++++++++++ ...teTest_StateMachineImplementsInterface.ump | 19 +++ .../java/JavaClassTemplateTest.java | 8 +- 3 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.java.txt create mode 100644 cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.ump diff --git a/cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.java.txt b/cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.java.txt new file mode 100644 index 0000000000..2baadb251c --- /dev/null +++ b/cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.java.txt @@ -0,0 +1,114 @@ +/*PLEASE DO NOT EDIT THIS CODE*/ +/*This code was generated using the UMPLE 1.25.0-963d2bd modeling language!*/ + + + +public class FileLogger implements Logger +{ + + //------------------------ + // MEMBER VARIABLES + //------------------------ + + //FileLogger Attributes + private String fileName; + + //FileLogger State Machines + public enum Status { disconnected, connected } + private Status status; + + //------------------------ + // CONSTRUCTOR + //------------------------ + + public FileLogger(String aFileName) + { + fileName = aFileName; + setStatus(Status.disconnected); + } + + //------------------------ + // INTERFACE + //------------------------ + + public String getStatusFullName() + { + String answer = status.toString(); + return answer; + } + + public Status getStatus() + { + return status; + } + + public boolean connect() + { + boolean wasEventProcessed = false; + + Status aStatus = status; + switch (aStatus) + { + case disconnected: + setStatus(Status.connected); + wasEventProcessed = true; + break; + default: + // Other states do respond to this event + } + + return wasEventProcessed; + } + + public boolean disconnect() + { + boolean wasEventProcessed = false; + + Status aStatus = status; + switch (aStatus) + { + case connected: + setStatus(Status.disconnected); + wasEventProcessed = true; + break; + default: + // Other states do respond to this event + } + + return wasEventProcessed; + } + + public boolean write(String String) + { + boolean wasEventProcessed = false; + + Status aStatus = status; + switch (aStatus) + { + case connected: + setStatus(Status.connected); + wasEventProcessed = true; + break; + default: + // Other states do respond to this event + } + + return wasEventProcessed; + } + + private void setStatus(Status aStatus) + { + status = aStatus; + } + + public void delete() + {} + + + public String toString() + { + String outputString = ""; + return super.toString() + "["+ "]" + + outputString; + } +} diff --git a/cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.ump b/cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.ump new file mode 100644 index 0000000000..1f858631f6 --- /dev/null +++ b/cruise.umple/test/cruise/umple/implementation/java/ClassTemplateTest_StateMachineImplementsInterface.ump @@ -0,0 +1,19 @@ +interface Logger { + boolean connect(); + boolean disconnect(); + boolean write(String Data); +} + +class FileLogger{ + isA Logger; + internal fileName; + status{ + disconnected{ + connect -> connected; + } + connected{ + disconnect -> disconnected; + write(String) -> connected; + } + } +} diff --git a/cruise.umple/test/cruise/umple/implementation/java/JavaClassTemplateTest.java b/cruise.umple/test/cruise/umple/implementation/java/JavaClassTemplateTest.java index 08dcdbdf98..a895bd09bc 100644 --- a/cruise.umple/test/cruise/umple/implementation/java/JavaClassTemplateTest.java +++ b/cruise.umple/test/cruise/umple/implementation/java/JavaClassTemplateTest.java @@ -147,5 +147,11 @@ public void ImportAssociations() public void immutableNotLazyAttributeConstructor(){ assertUmpleTemplateFor("java/ImmutableNotLazyAttributeConstructor.ump","java/StudentImmutableNotLazyTest.java.txt","Student"); } - + + @Test + public void stateMachineImplementsInterface(){ + assertUmpleTemplateFor("java/ClassTemplateTest_StateMachineImplementsInterface.ump", + "java/ClassTemplateTest_StateMachineImplementsInterface.java.txt", + "FileLogger"); + } }