refactoring_custom/SmallSense__CustomRBLocalSourceCodeFormatterTests.st
author convert-repo
Wed, 11 Dec 2019 04:28:36 +0000
changeset 1116 b51ace366efc
parent 1072 a44c741ee5ef
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     1
"
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     2
A custom code generation and refactoring support for Smalltalk/X
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     3
Copyright (C) 2013-2015 Jakub Nesveda
1072
a44c741ee5ef Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 833
diff changeset
     4
Copyright (C) 2015 Jan Vrany
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     5
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     6
This library is free software; you can redistribute it and/or
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     7
modify it under the terms of the GNU Lesser General Public
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     8
License as published by the Free Software Foundation; either
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
     9
version 2.1 of the License.
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    10
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    11
This library is distributed in the hope that it will be useful,
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    12
but WITHOUT ANY WARRANTY; without even the implied warranty of
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    14
Lesser General Public License for more details.
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    15
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    16
You should have received a copy of the GNU Lesser General Public
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    17
License along with this library; if not, write to the Free Software
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    18
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    19
"
833
297eb38e4eee Package jn:refactoring_custom renamed to stx:goodies/smallsense/refactoring_custom
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 830
diff changeset
    20
"{ Package: 'stx:goodies/smallsense/refactoring_custom' }"
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    21
830
1a88f5e65fe2 Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 829
diff changeset
    22
"{ NameSpace: SmallSense }"
803
95cdac772759 Fixed failing tests caused by new STX release
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 666
diff changeset
    23
830
1a88f5e65fe2 Classes moved to namespace SmallSense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 829
diff changeset
    24
Smalltalk::TestCase subclass:#CustomRBLocalSourceCodeFormatterTests
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    25
	instanceVariableNames:'spaceAfterReturnToken maxLengthForSingleLineBlocks
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    26
		blockArgumentsOnNewLine formatter'
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    27
	classVariableNames:''
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    28
	poolDictionaries:''
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    29
	category:'Interface-Refactoring-Custom-Tests'
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    30
!
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    31
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    32
!CustomRBLocalSourceCodeFormatterTests class methodsFor:'documentation'!
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    33
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    34
copyright
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    35
"
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    36
A custom code generation and refactoring support for Smalltalk/X
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    37
Copyright (C) 2013-2015 Jakub Nesveda
1072
a44c741ee5ef Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 833
diff changeset
    38
Copyright (C) 2015 Jan Vrany
829
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    39
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    40
This library is free software; you can redistribute it and/or
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    41
modify it under the terms of the GNU Lesser General Public
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    42
License as published by the Free Software Foundation; either
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    43
version 2.1 of the License.
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    44
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    45
This library is distributed in the hope that it will be useful,
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    46
but WITHOUT ANY WARRANTY; without even the implied warranty of
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    47
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    48
Lesser General Public License for more details.
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    49
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    50
You should have received a copy of the GNU Lesser General Public
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    51
License along with this library; if not, write to the Free Software
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    52
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    53
"
59bfd92fcef0 Test fixes (all test pass now)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 803
diff changeset
    54
! !
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    55
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    56
!CustomRBLocalSourceCodeFormatterTests methodsFor:'initialization & release'!
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    57
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    58
setUp
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    59
    "Original RBFormatter settings"
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    60
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    61
    spaceAfterReturnToken := RBFormatter spaceAfterReturnToken.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    62
    maxLengthForSingleLineBlocks := RBFormatter maxLengthForSingleLineBlocks.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    63
    blockArgumentsOnNewLine := RBFormatter blockArgumentsOnNewLine.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    64
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    65
    formatter := CustomRBLocalSourceCodeFormatter new.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    66
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    67
    "Modified: / 30-08-2014 / 23:18:26 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    68
!
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    69
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    70
tearDown
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    71
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    72
    RBFormatter spaceAfterReturnToken: spaceAfterReturnToken.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    73
    RBFormatter maxLengthForSingleLineBlocks: maxLengthForSingleLineBlocks.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    74
    RBFormatter blockArgumentsOnNewLine: blockArgumentsOnNewLine.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    75
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    76
    "Modified: / 21-08-2014 / 11:54:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    77
! !
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
    78
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    79
!CustomRBLocalSourceCodeFormatterTests methodsFor:'private'!
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    80
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    81
initilizeFormatterSettings: aFormatter
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    82
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    83
    aFormatter
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    84
        tabIndent: 4;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    85
        spaceAroundTemporaries: false;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    86
        emptyLineAfterTemporaries: true;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    87
        emptyLineAfterMethodComment: true;
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    88
        spaceAfterReturnToken: true;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    89
        spaceAfterKeywordSelector: false;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    90
        spaceAfterBlockStart: true;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    91
        spaceBeforeBlockEnd: true;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    92
        cStyleBlocks: true;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    93
        blockArgumentsOnNewLine: false;  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    94
        maxLengthForSingleLineBlocks: 4;
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    95
        periodAfterLastStatementPolicy: #keep.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    96
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    97
    "Created: / 30-08-2014 / 23:27:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    98
! !
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
    99
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   100
!CustomRBLocalSourceCodeFormatterTests methodsFor:'tests'!
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   101
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   102
test_format_parse_tree_source_is_nil
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   103
    | expectedSource actualSource parseTree source |
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   104
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   105
    source := 'selector ^ 777'.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   106
    parseTree := RBParser parseMethod: source.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   107
    parseTree source: nil.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   108
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   109
    formatter tabIndent: 4.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   110
    formatter spaceAfterReturnToken: true.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   111
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   112
    actualSource := formatter formatParseTree: parseTree.    
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   113
    expectedSource := 'selector
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   114
    ^ 777'.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   115
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   116
    self assert: actualSource = expectedSource.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   117
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   118
    "Created: / 31-08-2014 / 14:59:03 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   119
!
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   120
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   121
test_format_parse_tree_source_not_nil
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   122
    | expectedSource actualSource parseTree source |
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   123
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   124
    source := 'selector ^ 777'.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   125
    parseTree := RBParser parseMethod: source.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   126
    parseTree source: source.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   127
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   128
    formatter tabIndent: 4.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   129
    formatter spaceAfterReturnToken: true.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   130
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   131
    actualSource := formatter formatParseTree: parseTree.    
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   132
    expectedSource := 'selector
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   133
    ^ 777'.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   134
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   135
    self assert: actualSource = expectedSource.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   136
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   137
    "Created: / 31-08-2014 / 14:58:26 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   138
!
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   139
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   140
test_format_source_code
666
352e7b88c38e fix settings sensitive test in CustomRBLocalSourceCodeFormatterTests
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 662
diff changeset
   141
    "Assert that some formatting is made."
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   142
666
352e7b88c38e fix settings sensitive test in CustomRBLocalSourceCodeFormatterTests
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 662
diff changeset
   143
    | sourceCodeString actualSource |
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   144
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   145
    sourceCodeString := 'selector ^ 563'.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   146
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   147
    actualSource := formatter formatSourceCode: sourceCodeString.    
657
c13c07efc6fa move refactorings to category Interface-Refactoring-Custom-Refactorings
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 653
diff changeset
   148
    
666
352e7b88c38e fix settings sensitive test in CustomRBLocalSourceCodeFormatterTests
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 662
diff changeset
   149
    self deny: sourceCodeString = actualSource.
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   150
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   151
    "Created: / 30-08-2014 / 23:24:36 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
666
352e7b88c38e fix settings sensitive test in CustomRBLocalSourceCodeFormatterTests
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 662
diff changeset
   152
    "Modified: / 09-09-2014 / 21:47:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   153
!
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   154
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   155
test_formatter_setting_set_and_get
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   156
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   157
    | expectedTabIndent actualTabIndent |
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   158
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   159
    self deny: (formatter class canUnderstand: #tabIndent:).  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   160
    self deny: (formatter class canUnderstand: #tabIndent).  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   161
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   162
    formatter tabIndent: 10.    
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   163
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   164
    expectedTabIndent := 10.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   165
    actualTabIndent := formatter tabIndent.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   166
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   167
    self assert: expectedTabIndent = actualTabIndent.
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   168
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   169
    "Created: / 31-08-2014 / 14:42:46 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   170
!
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   171
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   172
test_formatter_setting_unknown
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   173
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   174
    self deny: (formatter class canUnderstand: #someUnknownSetting:).  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   175
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   176
    self should: [
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   177
        formatter someUnknownSetting: 10
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   178
    ] raise: MessageNotUnderstood
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   179
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   180
    "Created: / 31-08-2014 / 14:44:59 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
657
c13c07efc6fa move refactorings to category Interface-Refactoring-Custom-Refactorings
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 653
diff changeset
   181
!
c13c07efc6fa move refactorings to category Interface-Refactoring-Custom-Refactorings
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 653
diff changeset
   182
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   183
test_formatter_settings_modified_and_then_restored
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   184
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   185
    formatter
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   186
        spaceAfterReturnToken: (spaceAfterReturnToken isNil ifTrue: [ true ] ifFalse: [ spaceAfterReturnToken not ]);  
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   187
        maxLengthForSingleLineBlocks: (spaceAfterReturnToken isNil ifTrue: [ 21 ] ifFalse: [ maxLengthForSingleLineBlocks + 10 ]);
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   188
        blockArgumentsOnNewLine: (blockArgumentsOnNewLine isNil ifTrue: [ true ] ifFalse: [ blockArgumentsOnNewLine not ]).
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   189
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   190
    formatter setUpFormatterSettings.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   191
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   192
    self assert: (RBFormatter spaceAfterReturnToken) == (spaceAfterReturnToken isNil ifTrue: [ true ] ifFalse: [ spaceAfterReturnToken not ]).
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   193
    self assert: (RBFormatter maxLengthForSingleLineBlocks) == (spaceAfterReturnToken isNil ifTrue: [ 21 ] ifFalse: [ maxLengthForSingleLineBlocks + 10 ]).
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   194
    self assert: (RBFormatter blockArgumentsOnNewLine) == (blockArgumentsOnNewLine isNil ifTrue: [ true ] ifFalse: [ blockArgumentsOnNewLine not ]).
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   195
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   196
    formatter restoreFormatterSettings.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   197
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   198
    self assert: (RBFormatter spaceAfterReturnToken) == spaceAfterReturnToken.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   199
    self assert: (RBFormatter maxLengthForSingleLineBlocks) == maxLengthForSingleLineBlocks.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   200
    self assert: (RBFormatter blockArgumentsOnNewLine) == blockArgumentsOnNewLine.
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   201
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   202
    "Created: / 21-08-2014 / 11:44:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   203
    "Modified: / 30-08-2014 / 23:40:26 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
653
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   204
! !
7ad678c3b850 first draft (14 tests not passing) - instace-like formatter CustomSourceCodeFormatter and its two implementations
Jakub Nesveda <jakubnesveda@seznam.cz>
parents:
diff changeset
   205
662
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   206
!CustomRBLocalSourceCodeFormatterTests class methodsFor:'documentation'!
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   207
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   208
version_HG
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   209
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   210
    ^ '$Changeset: <not expanded> $'
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   211
! !
9d766cee6d31 add unit tests for CustomSourceCodeFormatter(s)
Jakub Nesveda <jakubnesveda@seznam.cz>
parents: 657
diff changeset
   212