1
+ using System . IO ;
2
+ using csmacnz . CoverityPublisher . Integration . Tests . TestFramework ;
3
+ using Xunit ;
4
+
5
+ namespace csmacnz . CoverityPublisher . Integration . Tests
6
+ {
7
+ public class CompressTests
8
+ {
9
+ [ Fact ]
10
+ public void ValidInputSuccessful ( )
11
+ {
12
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
13
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
14
+ var results = RunExe ( fileNameToCreate , compressionFolder ) ;
15
+
16
+ Assert . Equal ( 0 , results . ExitCode ) ;
17
+ Assert . True ( File . Exists ( fileNameToCreate ) ) ;
18
+ }
19
+
20
+ [ Fact ]
21
+ public void ValidInputDryRunSuccessfulWithoutFile ( )
22
+ {
23
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
24
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
25
+ var results = DryRunExe ( fileNameToCreate , compressionFolder ) ;
26
+
27
+ Assert . Equal ( 0 , results . ExitCode ) ;
28
+ Assert . False ( File . Exists ( fileNameToCreate ) ) ;
29
+ }
30
+
31
+ [ Fact ]
32
+ public void FolderDoesntExistErrors ( )
33
+ {
34
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
35
+ var results = RunExe ( fileNameToCreate , "doesntExistFolder" ) ;
36
+
37
+ Assert . NotEqual ( 0 , results . ExitCode ) ;
38
+ Assert . Contains ( "Input folder 'doesntExistFolder' cannot be found." , results . StandardError ) ;
39
+ }
40
+
41
+ [ Fact ]
42
+ public void InputFolderExistsWithoutBuildMetricsErrors ( )
43
+ {
44
+ var compressionFolder = TestFolders . CreateTempFolder ( ) ;
45
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
46
+ var results = RunExe ( fileNameToCreate , compressionFolder ) ;
47
+
48
+ Assert . NotEqual ( 0 , results . ExitCode ) ;
49
+ Assert . Contains ( "Input folder '" + compressionFolder + "' is not recognised as Coverity Scan results." , results . StandardError ) ;
50
+ }
51
+
52
+ [ Fact ]
53
+ public void InputFolderExistsWithFailuresWithoutAbortSuccessful ( )
54
+ {
55
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
56
+ var compressionFolder = CreateValidCompressionFolderWithFailures ( ) ;
57
+ var results = RunExe ( fileNameToCreate , compressionFolder ) ;
58
+
59
+ Assert . Equal ( 0 , results . ExitCode ) ;
60
+ }
61
+
62
+ [ Fact ]
63
+ public void InputFolderExistsWithFailuresWithAbortOnFailuresErrors ( )
64
+ {
65
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
66
+ var compressionFolder = CreateValidCompressionFolderWithFailures ( ) ;
67
+ var results = RunExe ( fileNameToCreate , compressionFolder , "--abortOnFailures" ) ;
68
+
69
+ Assert . NotEqual ( 0 , results . ExitCode ) ;
70
+ Assert . Contains ( "Input folder '" + compressionFolder + "' has recorded failures." , results . StandardError ) ;
71
+ }
72
+
73
+ [ Fact ]
74
+ public void InputFolderExistsWithoutFailuresWithAbortOnFailuresSuccessful ( )
75
+ {
76
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
77
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
78
+ var results = RunExe ( fileNameToCreate , compressionFolder , "--abortOnFailures" ) ;
79
+
80
+ Assert . Equal ( 0 , results . ExitCode ) ;
81
+ }
82
+
83
+ [ Fact ]
84
+ public void FileExistsWithoutOverwriteErrors ( )
85
+ {
86
+ var existingZip = TestFolders . CreateTempFile ( "zip" ) ;
87
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
88
+ var results = RunExe ( existingZip , compressionFolder ) ;
89
+
90
+ Assert . NotEqual ( 0 , results . ExitCode ) ;
91
+ Assert . Contains ( "Output file '" + existingZip + "' already exists." , results . StandardError ) ;
92
+ }
93
+
94
+ [ Fact ]
95
+ public void FileExistsWithOverwriteErrors ( )
96
+ {
97
+ var existingZip = TestFolders . CreateTempFile ( "zip" ) ;
98
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
99
+ var results = RunExe ( existingZip , compressionFolder , "--overwrite" ) ;
100
+
101
+ Assert . Equal ( 0 , results . ExitCode ) ;
102
+ Assert . Contains ( "Overwritting file '" + existingZip + "' with new compression data." , results . StandardOutput ) ;
103
+ Assert . True ( File . Exists ( existingZip ) ) ;
104
+ }
105
+
106
+ [ Fact ]
107
+ public void DefaultShowsLogo ( )
108
+ {
109
+ var results = ExecuteCompress ( ) ;
110
+
111
+ Assert . Equal ( 0 , results . ExitCode ) ;
112
+ Assert . Contains ( @"| __ \ | | | (_) | | / ____| (_) |" , results . StandardOutput ) ;
113
+ Assert . Contains ( @"| |__) | _| |__ | |_ ___| |__ | | _____ _____ _ __ _| |_ _ _" , results . StandardOutput ) ;
114
+ Assert . Contains ( @"| ___/ | | | '_ \| | / __| '_ \| | / _ \ \ / / _ \ '__| | __| | | |" , results . StandardOutput ) ;
115
+ Assert . Contains ( @"| | | |_| | |_) | | \__ \ | | | |___| (_) \ V / __/ | | | |_| |_| |" , results . StandardOutput ) ;
116
+ Assert . Contains ( @"|_| \__,_|_.__/|_|_|___/_| |_|\_____\___/ \_/ \___|_| |_|\__|\__, |" , results . StandardOutput ) ;
117
+ }
118
+
119
+ [ Fact ]
120
+ public void NoLogoSuccess ( )
121
+ {
122
+ var results = ExecuteCompress ( "--nologo" ) ;
123
+
124
+
125
+ Assert . Equal ( 0 , results . ExitCode ) ;
126
+ Assert . DoesNotContain ( @"| __ \ | | | (_) | | / ____| (_) |" , results . StandardOutput ) ;
127
+ Assert . DoesNotContain ( @"| |__) | _| |__ | |_ ___| |__ | | _____ _____ _ __ _| |_ _ _" , results . StandardOutput ) ;
128
+ Assert . DoesNotContain ( @"| ___/ | | | '_ \| | / __| '_ \| | / _ \ \ / / _ \ '__| | __| | | |" , results . StandardOutput ) ;
129
+ Assert . DoesNotContain ( @"| | | |_| | |_) | | \__ \ | | | |___| (_) \ V / __/ | | | |_| |_| |" , results . StandardOutput ) ;
130
+ Assert . DoesNotContain ( @"|_| \__,_|_.__/|_|_|___/_| |_|\_____\___/ \_/ \___|_| |_|\__|\__, |" , results . StandardOutput ) ;
131
+ }
132
+
133
+ private static string CreateValidCompressionFolder ( )
134
+ {
135
+ var compressionFolder = TestFolders . CreateTempFolder ( ) ;
136
+ var metricsFile = Path . Combine ( compressionFolder , BuildMetrics . FileName ) ;
137
+ File . WriteAllText ( metricsFile , BuildMetrics . GetValidContents ( ) ) ;
138
+ return compressionFolder ;
139
+ }
140
+
141
+ private static string CreateValidCompressionFolderWithFailures ( )
142
+ {
143
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
144
+ File . WriteAllText ( Path . Combine ( compressionFolder , BuildMetrics . FileName ) , BuildMetrics . GetContentsWithFailures ( ) ) ;
145
+ return compressionFolder ;
146
+ }
147
+
148
+ private RunResults ExecuteCompress ( string options = "" )
149
+ {
150
+ var compressionFolder = CreateValidCompressionFolder ( ) ;
151
+ var fileNameToCreate = TestFolders . DefineTempFile ( "FileNameToCreate.zip" ) ;
152
+ var results = DryRunExe ( fileNameToCreate , compressionFolder , options ) ;
153
+ return results ;
154
+ }
155
+
156
+ private static RunResults RunExe ( string output , string input , string options = "" )
157
+ {
158
+ return ExeTestRunner . RunExe ( string . Format ( "compress -o {0} -i {1} {2}" , output , input , options ) ) ;
159
+ }
160
+
161
+ private static RunResults DryRunExe ( string output , string input , string options = "" )
162
+ {
163
+ return ExeTestRunner . RunExe ( string . Format ( "compress -o {0} -i {1} --dryrun {2}" , output , input , options ) ) ;
164
+ }
165
+ }
166
+ }
0 commit comments