From 1ec2df6e43e6d80f9e88d9dbe5dade9cc9a168d1 Mon Sep 17 00:00:00 2001 From: "U-LB\\chanwit" Date: Thu, 18 Sep 2008 20:24:10 +0700 Subject: [PATCH] change should == to shouldBe --- src/java/org/tspec/ThaiSpecBinding.java | 44 ++++++++++++++++++++------ src/java/org/tspec/runtime/ErrorListener.java | 37 ++++++++++++++++------ src/java/org/tspec/runtime/ReportHelper.java | 33 ++++++++++--------- src/java/org/tspec/runtime/ShouldCategory.java | 2 +- src/java/org/tspec/runtime/ShouldObject.java | 22 ++++++++----- 5 files changed, 93 insertions(+), 45 deletions(-) rewrite src/java/org/tspec/runtime/ReportHelper.java (62%) diff --git a/src/java/org/tspec/ThaiSpecBinding.java b/src/java/org/tspec/ThaiSpecBinding.java index e9a7a33..8d10911 100755 --- a/src/java/org/tspec/ThaiSpecBinding.java +++ b/src/java/org/tspec/ThaiSpecBinding.java @@ -14,22 +14,26 @@ import org.tspec.closure.SubjectClosure; import org.tspec.dom.Story; import org.tspec.runtime.MustObject; import org.tspec.runtime.ShouldObject; +import org.tspec.runtime.ErrorListener; public class ThaiSpecBinding extends Binding { - public ThaiSpecBinding() { + private ErrorListener el; + + public ThaiSpecBinding(ErrorListener el) { super(); + this.el = el; init(); } private void init() { Story root = new Story(); - setVariable("เรื่อง", new SubjectClosure(root)); + setVariable("เรื่อง", new SubjectClosure(root)); setVariable("อธิบาย", new ScenarioClosure(root)); setVariable("ก่อน", new BeforeClosure(root)); setVariable("หลัง", new AfterClosure(root)); - setupShouldAndMust(); + setupShouldAndMust(); } private void setupShouldAndMust() { @@ -39,17 +43,39 @@ public class ThaiSpecBinding extends Binding { Closure shouldClosure = new Closure(null){ @SuppressWarnings("unused") public ShouldObject doCall() { - return new ShouldObject(this.getDelegate()); + ShouldObject obj = new ShouldObject(this.getDelegate()); + obj.setEl(el); + return obj; } }; - Closure mustClosure = new Closure(null){ +/* Closure mustClosure = new Closure(null){ @SuppressWarnings("unused") public MustObject doCall() { - return new MustObject(this.getDelegate()); + return new MustObject(this.getDelegate()); + } + }; */ + Closure shouldBe = new Closure(null){ + @SuppressWarnings("unused") + public Object doCall(Object o) { +// System.out.println("=================== >>> I'm being called"); +// System.out.println("so what's it : " + this.getDelegate()); + ShouldObject obj = new ShouldObject(this.getDelegate(), true); + obj.setEl(el); + return obj.equals(o); + } + }; + Closure shouldNotBe = new Closure(null){ + @SuppressWarnings("unused") + public Object doCall(Object o) { + ShouldObject obj = new ShouldObject(this.getDelegate()); + obj.setEl(el); + return obj.equals(o); } - }; + }; mc.setProperty("getShould", shouldClosure); - mc.setProperty("getMust", mustClosure); +// mc.setProperty("getMust", mustClosure); + mc.setProperty("shouldBe", shouldBe); + mc.setProperty("shouldNotBe", shouldNotBe); } - + } diff --git a/src/java/org/tspec/runtime/ErrorListener.java b/src/java/org/tspec/runtime/ErrorListener.java index eae77a4..417b926 100755 --- a/src/java/org/tspec/runtime/ErrorListener.java +++ b/src/java/org/tspec/runtime/ErrorListener.java @@ -4,36 +4,53 @@ import java.util.ArrayList; import java.util.List; public class ErrorListener { - + private static ErrorListener _instance; private List errors=new ArrayList(); + private String storyName; + private int count = 0; + + public ErrorListener(){ + } - private ErrorListener(){ } - public static ErrorListener v() { if(_instance == null) { _instance = new ErrorListener(); - } + } return _instance; } - + + public void setStoryName(String name){ + this.storyName = name; + } + public void reset() { this.errors.clear(); } public void addError(String message) { - this.errors.add(message); + this.errors.add(message); } public boolean hasErrors() { return this.errors.size() > 0; } + public void count() { + this.count++; + } + public void print() { - System.out.println(""); - for(String s: this.errors) { - System.out.println(s); + System.out.println("เรื่อง " + storyName); + if(hasErrors()) { + System.out.println("เจอข้อผิดพลาด"); + System.out.println(""); + for(String s: this.errors) { + System.out.println(s); + } + } else { + System.out.println("จำนวนสถานการณ์ทั้งหมด: "+ count + "ผ่าน"); } } - + } diff --git a/src/java/org/tspec/runtime/ReportHelper.java b/src/java/org/tspec/runtime/ReportHelper.java dissimilarity index 62% index 4551fc4..9a249ac 100755 --- a/src/java/org/tspec/runtime/ReportHelper.java +++ b/src/java/org/tspec/runtime/ReportHelper.java @@ -1,17 +1,16 @@ -package org.tspec.runtime; - -public class ReportHelper { - - static void reportError(Object object, Object obj2, String message) { - for(StackTraceElement ste: Thread.currentThread().getStackTrace()) { - if(ste.getFileName()!=null && ste.getFileName().lastIndexOf("Story.groovy")!=-1) { - ErrorListener.v().addError( - ste.getFileName()+":"+ste.getLineNumber() + " / " - + object + " " + message + " " + obj2 - ); - break; - } - } - } - -} +package org.tspec.runtime; + +public class ReportHelper { + + static void reportError(ErrorListener el, StackTraceElement[] traces, String message) { + for(StackTraceElement ste: traces) { + if(ste.getFileName()!=null && ste.getFileName().lastIndexOf("Story.groovy")!=-1) { + el.addError( + ste.getFileName()+" at line "+ste.getLineNumber() + " : " + message + ); + break; + } + } + } + +} diff --git a/src/java/org/tspec/runtime/ShouldCategory.java b/src/java/org/tspec/runtime/ShouldCategory.java index 84ae154..a153fba 100755 --- a/src/java/org/tspec/runtime/ShouldCategory.java +++ b/src/java/org/tspec/runtime/ShouldCategory.java @@ -48,7 +48,7 @@ public class ShouldCategory { } } - public static ShouldObject should(Object o) { + public static ShouldObject getShould(Object o) { return new ShouldObject(o); } diff --git a/src/java/org/tspec/runtime/ShouldObject.java b/src/java/org/tspec/runtime/ShouldObject.java index 53fb741..7a66808 100755 --- a/src/java/org/tspec/runtime/ShouldObject.java +++ b/src/java/org/tspec/runtime/ShouldObject.java @@ -4,30 +4,36 @@ public class ShouldObject { private Object object; private boolean not; + private ErrorListener el; public ShouldObject(Object o) { this(o, false); - } - + } + public ShouldObject(Object o, boolean b) { this.object = o; this.not = b; } + public void setEl(ErrorListener el) { + this.el = el; + } + @Override public boolean equals(Object obj) { - boolean result = this.object.equals(obj); + boolean result; + result = this.object.equals(obj); if(this.not==true) { - if(!result) ReportHelper.reportError(this.object, obj, "should not be"); + if(!result) ReportHelper.reportError(el, Thread.currentThread().getStackTrace(), this.object + " should not be " + obj); return !result; - } else { - if(result) ReportHelper.reportError(this.object, obj, "should be"); + } else { // not == false - meaning comparing true + if(result) ReportHelper.reportError(el, Thread.currentThread().getStackTrace(), this.object + " should not be " + obj); return result; } } - + public ShouldObject getNot() { return new ShouldObject(this.object, true); - } + } } -- 2.11.4.GIT