@@ -12,10 +12,23 @@ namespace NF.Tool.ReleaseNoteMaker.Tests
12
12
[ DoNotParallelize ]
13
13
public class TestWrite
14
14
{
15
- [ TestInitialize ( ) ]
16
- public void Init ( )
15
+ public required TestContext TestContext { get ; set ; }
16
+
17
+ [ TestInitialize ]
18
+ public void TestInitialize ( )
19
+ {
20
+ string testName = TestContext . TestName ! ;
21
+ string testDirectory = Path . Combine ( TestContext . DeploymentDirectory ! , testName ) ;
22
+ Directory . CreateDirectory ( testDirectory ) ;
23
+ File . Copy ( "Template.tt" , $ "{ testDirectory } /Template.tt") ;
24
+ File . Copy ( "ReleaseNote.config.toml" , $ "{ testDirectory } /ReleaseNote.config.toml") ;
25
+ Directory . SetCurrentDirectory ( testDirectory ) ;
26
+ }
27
+
28
+ [ TestCleanup ]
29
+ public void TestCleanup ( )
17
30
{
18
- File . Delete ( "ChangeLog.md" ) ;
31
+ Directory . SetCurrentDirectory ( TestContext . DeploymentDirectory ! ) ;
19
32
}
20
33
21
34
[ TestMethod ]
@@ -230,17 +243,21 @@ public async Task TestMultipleFileNoStartString()
230
243
[ TestMethod ]
231
244
[ DeploymentItem ( "Template.tt" ) ]
232
245
[ DeploymentItem ( "ReleaseNote.config.toml" ) ]
233
- [ DeploymentItem ( "SampleData/Case001/123.feature" , "ChangeLog.d/" ) ]
234
246
public async Task TestWithTitleFormatDuplicateVersionRaise ( )
235
247
{
236
- Assert . IsTrue ( File . Exists ( "ChangeLog.d/123.feature" ) ) ;
237
-
248
+ Directory . CreateDirectory ( "ChangeLog.d" ) ;
249
+ File . WriteAllText ( "ChangeLog.d/123.feature" , "Adds levitation" ) ;
238
250
File . WriteAllText ( "ReleaseNote.config.toml" , """
239
251
[ReleaseNote.Maker]
240
252
Directory = "ChangeLog.d"
241
253
OutputFileName = "{0}-notes.md"
242
254
TemplateFilePath = "Template.tt"
243
255
TitleFormat = "{0} {1} ({2})"
256
+
257
+ [[ReleaseNote.Type]]
258
+ Category = "feature"
259
+ DisplayName = "Features"
260
+ IsShowContent = true
244
261
""" ) ;
245
262
246
263
string [ ] args = [
@@ -254,17 +271,76 @@ public async Task TestWithTitleFormatDuplicateVersionRaise()
254
271
int result = await Program . Main ( args ) ;
255
272
Assert . AreEqual ( 0 , result ) ;
256
273
Console . Write ( File . ReadAllText ( "{0}-notes.md" ) ) ;
257
- Assert . IsTrue ( File . Exists ( "ChangeLog.d/123.feature" ) ) ;
274
+ Assert . IsTrue ( ! File . Exists ( "ChangeLog.d/123.feature" ) ) ;
258
275
259
276
260
277
261
278
TestConsole c = new TestConsole ( ) ;
262
279
AnsiConsole . Console = c ;
280
+
281
+ File . WriteAllText ( "ChangeLog.d/123.feature" , "Adds levitation" ) ;
263
282
result = await Program . Main ( args ) ;
264
283
Assert . AreEqual ( 1 , result ) ;
265
284
266
285
string expected = "already produced newsfiles for this version" ;
267
286
Assert . IsTrue ( c . Output . Contains ( expected ) ) ;
268
287
}
288
+
289
+ [ TestMethod ]
290
+ [ DeploymentItem ( "Template.tt" ) ]
291
+ [ DeploymentItem ( "ReleaseNote.config.toml" ) ]
292
+ public async Task TestSingleFileFalseOverwriteDuplicateVersion ( )
293
+ {
294
+ Directory . CreateDirectory ( "ChangeLog.d" ) ;
295
+ File . WriteAllText ( "ChangeLog.d/123.feature" , "Adds levitation" ) ;
296
+ File . WriteAllText ( "ReleaseNote.config.toml" , """
297
+ [ReleaseNote.Maker]
298
+ Directory = "ChangeLog.d"
299
+ OutputFileName = "{1}-notes.md"
300
+ TemplateFilePath = "Template.tt"
301
+ TitleFormat = "# {0} {1} ({2})"
302
+ IsSingleFile = false
303
+
304
+ [[ReleaseNote.Type]]
305
+ Category = "feature"
306
+ DisplayName = "Features"
307
+ IsShowContent = true
308
+ """ ) ;
309
+
310
+ string [ ] args = [
311
+ "build" ,
312
+ "--version" , "7.8.9" ,
313
+ "--name" , "foo" ,
314
+ "--date" , "01-01-2001" ,
315
+ "--yes" ,
316
+ ] ;
317
+
318
+ int result = await Program . Main ( args ) ;
319
+ Assert . AreEqual ( 0 , result ) ;
320
+ Assert . IsTrue ( ! File . Exists ( "ChangeLog.d/123.feature" ) ) ;
321
+
322
+ File . WriteAllText ( "ChangeLog.d/123.feature" , "Adds levitation" ) ;
323
+
324
+ result = await Program . Main ( args ) ;
325
+ Assert . AreEqual ( 0 , result ) ;
326
+ Assert . IsTrue ( ! File . Exists ( "ChangeLog.d/123.feature" ) ) ;
327
+
328
+
329
+ string [ ] notes = Directory . GetFiles ( "." , "*-notes.md" , SearchOption . TopDirectoryOnly ) . Select ( x => Path . GetRelativePath ( "." , x ) ) . ToArray ( ) ;
330
+ Assert . AreEqual ( 1 , notes . Length ) ;
331
+ Assert . AreEqual ( "7.8.9-notes.md" , notes [ 0 ] ) ;
332
+
333
+ string actual = File . ReadAllText ( notes [ 0 ] ) ;
334
+
335
+ string expected = """
336
+ # foo 7.8.9 (01-01-2001)
337
+
338
+ ### Features
339
+
340
+ - Adds levitation (#123)
341
+
342
+ """ . Replace ( "\r \n " , "\n " ) ;
343
+ Assert . AreEqual ( expected , actual ) ;
344
+ }
269
345
}
270
346
}
0 commit comments