refactoring_custom/SmallSense__CustomSourceCodeGeneratorTests.st
changeset 833 297eb38e4eee
parent 832 59c248fc74f0
child 1072 a44c741ee5ef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/refactoring_custom/SmallSense__CustomSourceCodeGeneratorTests.st	Sun Jun 14 09:46:51 2015 +0100
@@ -0,0 +1,180 @@
+"
+A custom code generation and refactoring support for Smalltalk/X
+Copyright (C) 2013-2015 Jakub Nesveda
+Copyright (C) 2013-now  Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+"{ Package: 'stx:goodies/smallsense/refactoring_custom' }"
+
+"{ NameSpace: SmallSense }"
+
+Smalltalk::TestCase subclass:#CustomSourceCodeGeneratorTests
+	instanceVariableNames:'sourceCodeGenerator'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Interface-Refactoring-Custom-Tests'
+!
+
+!CustomSourceCodeGeneratorTests class methodsFor:'documentation'!
+
+copyright
+"
+A custom code generation and refactoring support for Smalltalk/X
+Copyright (C) 2013-2015 Jakub Nesveda
+Copyright (C) 2013-now  Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+! !
+
+!CustomSourceCodeGeneratorTests methodsFor:'initialization & release'!
+
+setUp
+
+    sourceCodeGenerator := CustomSourceCodeGenerator new.
+    sourceCodeGenerator formatter: CustomNoneSourceCodeFormatter new.
+
+    "Modified: / 19-09-2014 / 23:42:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
+!CustomSourceCodeGeneratorTests methodsFor:'tests'!
+
+test_new_source_literal_replacement
+    |expectedSource actualSource|
+
+    actualSource := sourceCodeGenerator
+            replace:'`"comment1' with:'"comment1"';
+            replace:'`"comment2' with:'"other comment2"';
+            replace:'`#literal' with:'''some info''';
+            source:'selector
+    `"comment1
+
+    self information: `#literal.
+
+    `"comment2
+
+    ^ 55';
+            newSource.
+    expectedSource := 'selector
+    "comment1"
+
+    self information: ''some info''.
+
+    "other comment2"
+
+    ^ 55'.
+    self assert:expectedSource = actualSource.
+
+    "Created: / 19-09-2014 / 23:45:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_new_source_selector_as_symbol
+    | expectedSource actualSource |
+
+    actualSource := sourceCodeGenerator
+        source: '`@selector
+            self shouldImplement';
+        replace: '`@selector' with: 'aSelector: withParam' asSymbol;
+        newSource.    
+
+    expectedSource := 'aSelector: withParam
+            self shouldImplement'.
+
+    self assert: expectedSource = actualSource.
+
+    "Created: / 20-09-2014 / 09:36:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_new_source_selector_replacement
+    |expectedSource actualSource|
+
+    actualSource := sourceCodeGenerator
+            source:'`@selector
+            self shouldImplement';
+            replace:'`@selector' with:'aSelector';
+            newSource.
+    expectedSource := 'aSelector
+            self shouldImplement'.
+    self assert:expectedSource = actualSource.
+
+    "Created: / 19-09-2014 / 23:51:19 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_new_source_selector_with_param
+    | expectedSource actualSource |
+
+    actualSource := sourceCodeGenerator
+        source: '`@selector
+            self shouldImplement';
+        replace: '`@selector' with: 'aSelector: withParam';
+        newSource.    
+
+    expectedSource := 'aSelector: withParam
+            self shouldImplement'.
+
+    self assert: expectedSource = actualSource.
+
+    "Created: / 20-09-2014 / 09:39:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_replace_comments_in_source
+    | expectedSource actualSource |
+
+    actualSource := sourceCodeGenerator
+        replace: '`"comment1' with: '"comment1"'; 
+        replace: '`"comment2' with: '"other comment2"';
+        replaceCommentsInSource:'selector
+    `"comment1
+
+    self information: ''some info''.
+
+    `"comment2
+
+    ^ 55'.    
+
+    expectedSource := 'selector
+    "comment1"
+
+    self information: ''some info''.
+
+    "other comment2"
+
+    ^ 55'.
+    
+    self assert: expectedSource = actualSource.
+
+    "Created: / 19-09-2014 / 22:50:29 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
+!CustomSourceCodeGeneratorTests class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+