Skip to content

Commit 4a3c0ff

Browse files
authored
Merge pull request #20 from sarahtathy/sarah-branch
add tests
2 parents 25638f4 + bd95e86 commit 4a3c0ff

File tree

3 files changed

+110
-25
lines changed

3 files changed

+110
-25
lines changed

src/MicroEd-Spec/MDEditorPresenter.class.st

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,7 @@ MDEditorPresenter >> saveFile [
205205
"SAVE button is pressed: save file, then print message if actually saved (if no cancel)"
206206

207207
self mdFile: (self mdFile
208-
save: textInput text asString
209-
withExtension: syntaxState extension).
208+
save: textInput text asString ).
210209
self window ifNotNil: [self updateTitle].
211210

212211
]

src/MicroEd-Tests/MDFileTest.class.st

Lines changed: 64 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ Class {
44
#instVars : [
55
'memoryFS',
66
'fileExample',
7-
'fileWithoutFileReference',
87
'toDelete',
9-
'fileReferenceWithName'
8+
'fileReferenceWithName',
9+
'mdfile',
10+
'parser'
1011
],
1112
#category : 'MicroEd-Tests',
1213
#package : 'MicroEd-Tests'
@@ -18,13 +19,15 @@ MDFileTest >> setUp [
1819
super setUp.
1920
memoryFS := FileSystem memory.
2021
toDelete := OrderedCollection new.
21-
fileWithoutFileReference := MDFile new.
22+
mdfile := MDFile new.
2223
fileExample := memoryFS / 'example.md'.
2324
fileReferenceWithName := (memoryFS / 'anotherFile.md')
2425
ensureCreateFile.
25-
toDelete add: fileExample.
26+
toDelete add: fileExample.
2627
fileExample writeStreamDo: [ :stream |
27-
stream nextPutAll: 'example file' ]
28+
stream nextPutAll: 'example file' ].
29+
30+
parser := MicrodownParser new.
2831
]
2932

3033
{ #category : 'running' }
@@ -39,30 +42,29 @@ MDFileTest >> tearDown [
3942
{ #category : 'running' }
4043
MDFileTest >> testMDFileCreationWithExistingFile [
4144

42-
| file |
43-
file := MDFile new.
44-
file initializeWithFileReference: fileExample.
45-
self assert: file hasFile.
45+
mdfile initializeWithFileReference: fileExample.
46+
self assert: mdfile hasFile.
4647

4748
]
4849

4950
{ #category : 'running' }
5051
MDFileTest >> testMDFileCreationWithoutExistingFile [
5152

53+
| fileWithoutFileReference |
54+
fileWithoutFileReference := MDFile new.
5255
self assert: fileWithoutFileReference hasFile not.
5356
]
5457

5558
{ #category : 'running' }
5659
MDFileTest >> testMDFileExistingFileWithName [
5760

5861

59-
| file fileReferenceWithoutName |
62+
| fileReferenceWithoutName |
6063

6164
fileReferenceWithoutName := (memoryFS / 'name.md') ensureCreateFile.
6265
toDelete add: fileReferenceWithoutName.
63-
file := MDFile new.
64-
file initializeWithFileReference: fileReferenceWithoutName.
65-
self assert: (file basename endsWith: 'name.md').
66+
mdfile initializeWithFileReference: fileReferenceWithoutName.
67+
self assert: (mdfile basename endsWith: 'name.md').
6668

6769

6870
]
@@ -80,6 +82,55 @@ MDFileTest >> testMDFileExistingFileWithoutName [
8082

8183
]
8284

85+
{ #category : 'running' }
86+
MDFileTest >> testMDFileHasFileReferenceAddMetaData [
87+
88+
| root file |
89+
90+
file := memoryFS / 'test2'.
91+
file ensureCreateFile.
92+
mdfile initializeWithFileReference: file.
93+
mdfile addMetaDataElements.
94+
95+
root := MicrodownParser parse: mdfile contents.
96+
self assert: root hasMetaDataElement.
97+
98+
99+
]
100+
101+
{ #category : 'running' }
102+
MDFileTest >> testMDFileHasFileReferenceHasMetaData [
103+
104+
| root file |
105+
106+
file := memoryFS / 'test2'.
107+
file ensureCreateFile.
108+
mdfile initializeWithFileReference: file.
109+
root := MicrodownParser parse: mdfile fileReference contents.
110+
mdfile addMetaDataElements.
111+
112+
root := MicrodownParser parse: mdfile contents.
113+
self assert: root hasMetaDataElement.
114+
115+
mdfile fileReference delete.
116+
117+
118+
]
119+
120+
{ #category : 'running' }
121+
MDFileTest >> testMDFileHasFileReferenceHasNotMetaData [
122+
123+
| root file |
124+
125+
file := memoryFS / 'test3'.
126+
file ensureCreateFile.
127+
mdfile initializeWithFileReference: file.
128+
root := MicrodownParser parse: mdfile contents.
129+
self deny: root hasMetaDataElement.
130+
131+
132+
]
133+
83134
{ #category : 'running' }
84135
MDFileTest >> testMDFileHasFileReferenceWithFormatISO [
85136

src/MicroEd/MDFile.class.st

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ Class {
55
#name : 'MDFile',
66
#superclass : 'Object',
77
#instVars : [
8-
'fileReference'
8+
'fileReference',
9+
'nameOfFileReferenceBeforeSaved'
910
],
1011
#category : 'MicroEd',
1112
#package : 'MicroEd'
@@ -19,18 +20,45 @@ MDFile class >> newFromFileReference: aFileReference [
1920
yourself
2021
]
2122

23+
{ #category : 'add' }
24+
MDFile >> addMetaDataElements [
25+
26+
| root |
27+
root := MicrodownParser parse: fileReference contents.
28+
29+
root hasMetaDataElement
30+
ifFalse: [
31+
root := MicrodownParser parse: '{
32+
"author" : "addos"
33+
}
34+
'.
35+
root metaDataElement
36+
atKey: 'author' put: (fileReference entry reference path at: 3);
37+
atKey: 'title' put: nameOfFileReferenceBeforeSaved;
38+
atKey: 'lastModificationDate' put: fileReference modificationTime asDate yyyymmdd ]
39+
ifTrue: [
40+
root metaDataElement
41+
atKey: 'lastModificationDate'
42+
put: fileReference modificationTime asDate yyyymmdd].
43+
44+
self visit: root.
45+
]
46+
2247
{ #category : 'accessing' }
2348
MDFile >> basename [
2449
"Answer a String representing the receiver's file name"
2550

2651
| dateCreationOfFileReference |
27-
fileReference ifNil: [ ^ 'Untitled.md' ].
52+
fileReference ifNil: [
53+
nameOfFileReferenceBeforeSaved := 'Untitled'.
54+
^ 'Untitled' ].
55+
56+
nameOfFileReferenceBeforeSaved := fileReference basename.
2857
dateCreationOfFileReference := DateAndTime now asDate yyyymmdd.
2958
(fileReference basename includesSubstring:
3059
dateCreationOfFileReference) ifFalse: [
31-
^ dateCreationOfFileReference , fileReference basename ].
32-
^ fileReference basename
33-
60+
^ dateCreationOfFileReference , '_' , fileReference basename ].
61+
^ fileReference basename
3462
]
3563

3664
{ #category : 'accessing' }
@@ -95,15 +123,22 @@ MDFile >> initializeWithFileReference: aFileReference [
95123
]
96124

97125
{ #category : 'accessing' }
98-
MDFile >> save: aString withExtension: anExtension [
99-
" before put the file reference, ensure that the creation of the basename is set (without the renaming)
100-
fileReference extension = anExtension asString ifFalse: [
101-
fileReference renameTo:
102-
self basename , '.' , anExtension asString ]. "
126+
MDFile >> save: aString [
127+
103128
fileReference asFileReference writeStreamDo: [ :str |
104129
str
105130
nextPutAll: aString ].
106131

107132

108133

109134
]
135+
136+
{ #category : 'add' }
137+
MDFile >> visit: aRoot [
138+
139+
| visitor |
140+
visitor := MicTextualMicrodownExporter new.
141+
visitor visit: aRoot.
142+
fileReference writeStreamDo: [ :stream |
143+
stream nextPutAll: visitor contents ]
144+
]

0 commit comments

Comments
 (0)