66using System ;
77using System . IO ;
88using Newtonsoft . Json . Linq ;
9+ using System . Linq ;
10+ using System . Text ;
911
1012namespace Allure . Net . Commons . Tests
1113{
1214 [ TestFixture ]
1315 public class FileSystemResultsWriterTests
1416 {
17+ DirectoryInfo tmpDir ;
18+
19+ [ SetUp ]
20+ public void CreateTempDir ( )
21+ {
22+ this . tmpDir = Directory . CreateTempSubdirectory ( ) ;
23+ }
24+
25+ [ TearDown ]
26+ public void DeleteTmpDir ( )
27+ {
28+ if ( this . tmpDir . Exists )
29+ {
30+ try
31+ {
32+ this . tmpDir . Delete ( true ) ;
33+ }
34+ catch ( Exception e )
35+ {
36+ TestContext . WriteLine ( e . ToString ( ) ) ;
37+ }
38+ }
39+ }
40+
1541 [ Test , Description ( "Should use temp path if no access to output directory" ) ]
1642 public void ShouldUseTempPathIfNoAccessToResultsDirectory ( )
1743 {
@@ -25,14 +51,40 @@ public void ShouldUseTempPathIfNoAccessToResultsDirectory()
2551 [ Test , Description ( "Cleanup test" ) ]
2652 public void ShouldCleanupTempResultsFolder ( )
2753 {
28- var resultsDirectory = Path . Combine ( Path . GetTempPath ( ) , Guid . NewGuid ( ) . ToString ( ) ) ;
29- var json = $ "{{\" allure\" :{{\" directory\" : { JsonConvert . ToString ( resultsDirectory ) } }}}}";
54+ var json = $ "{{\" allure\" :{{\" directory\" : { JsonConvert . ToString ( this . tmpDir . FullName ) } }}}}";
3055 var config = AllureConfiguration . ReadFromJObject ( JObject . Parse ( json ) ) ;
31- Directory . CreateDirectory ( resultsDirectory ) ;
32- File . WriteAllText ( Path . Combine ( resultsDirectory , Path . GetRandomFileName ( ) ) , "" ) ;
56+ File . WriteAllText ( Path . Combine ( this . tmpDir . FullName , Path . GetRandomFileName ( ) ) , "" ) ;
3357
3458 new FileSystemResultsWriter ( config ) . CleanUp ( ) ;
35- Assert . That ( Directory . GetFiles ( resultsDirectory ) , Is . Empty ) ;
59+ Assert . That ( this . tmpDir . EnumerateFiles ( ) , Is . Empty ) ;
60+ }
61+
62+ [ Test ]
63+ public void ShouldWriteCompressedJsonByDefault ( )
64+ {
65+ var config = new AllureConfiguration { Directory = this . tmpDir . FullName } ;
66+ var writer = new FileSystemResultsWriter ( config ) ;
67+ var testResult = new TestResult { name = "foo" } ;
68+
69+ writer . Write ( testResult ) ;
70+
71+ var resultFile = this . tmpDir . EnumerateFiles ( ) . Single ( ) ;
72+ var resultJson = File . ReadAllText ( resultFile . FullName , Encoding . UTF8 ) ;
73+ Assert . That ( resultJson , Does . Not . Match ( @"\s" ) ) ;
74+ }
75+
76+ [ Test ]
77+ public void ShouldPrettyPrintJsonIfConfigured ( )
78+ {
79+ var config = new AllureConfiguration { Directory = this . tmpDir . FullName , IndentOutput = true } ;
80+ var writer = new FileSystemResultsWriter ( config ) ;
81+ var testResult = new TestResult { name = "foo" } ;
82+
83+ writer . Write ( testResult ) ;
84+
85+ var resultFile = this . tmpDir . EnumerateFiles ( ) . Single ( ) ;
86+ var resultJson = File . ReadAllText ( resultFile . FullName , Encoding . UTF8 ) ;
87+ Assert . That ( resultJson , Does . Contain ( " " ) ) ;
3688 }
3789 }
3890}
0 commit comments