15
15
16
16
namespace Test
17
17
{
18
-
19
18
public class CoverletExeArgumentsProvider_Tests
20
19
{
20
+ private const string testProjectName = "TestProject" ;
21
21
[ Test ]
22
22
public void Should_Have_ExcludeByAttribute_Setting_For_Each_ExcludeByAttribute ( )
23
23
{
@@ -43,12 +43,99 @@ public void Should_Unqualified_Qualified_ExcludeByAttribute()
43
43
AssertHasSetting ( coverletSettings , "--exclude-by-attribute ExcludeByAttribute1" ) ;
44
44
}
45
45
46
+ [ Test ]
47
+ public void Should_Not_Add_Test_Test_Assembly_To_Includes_When_IncludeTestAssembly_And_No_Other_Includes ( )
48
+ {
49
+ var mockCoverageProject = SafeMockCoverageProject ( ) ;
50
+ mockCoverageProject . SetupGet ( cp => cp . Settings . IncludeTestAssembly ) . Returns ( true ) ;
51
+
52
+ var coverletExeArgumentsProvider = new CoverletExeArgumentsProvider ( ) ;
53
+ var coverletSettings = coverletExeArgumentsProvider . GetArguments ( mockCoverageProject . Object ) ;
54
+
55
+ Assert . IsFalse ( HasIncludedTestAssemblySetting ( coverletSettings ) ) ;
56
+ }
57
+
58
+ private bool HasIncludedTestAssemblySetting ( List < string > coverletSettings )
59
+ {
60
+ return coverletSettings . Any ( coverletSetting => coverletSetting == $@ "--include ""[{ testProjectName } ]*""") ;
61
+ }
62
+
63
+ [ Test ]
64
+ public void Should_Add_Test_Test_Assembly_To_Includes_When_IncludeTestAssembly_And_Other_Includes ( )
65
+ {
66
+ var mockCoverageProject = SafeMockCoverageProject ( ) ;
67
+ mockCoverageProject . SetupGet ( cp => cp . Settings . IncludeTestAssembly ) . Returns ( true ) ;
68
+ mockCoverageProject . SetupGet ( cp => cp . Settings . Include ) . Returns ( new string [ ] { "[anassembly]*" } ) ;
69
+
70
+ var coverletExeArgumentsProvider = new CoverletExeArgumentsProvider ( ) ;
71
+ var coverletSettings = coverletExeArgumentsProvider . GetArguments ( mockCoverageProject . Object ) ;
72
+
73
+ Assert . IsTrue ( HasIncludedTestAssemblySetting ( coverletSettings ) ) ;
74
+ }
75
+
76
+ [ Test ]
77
+ public void Should_Add_IncludedReferencedProjects_As_Include ( )
78
+ {
79
+ var mockCoverageProject = SafeMockCoverageProject ( ) ;
80
+ var mockReferencedProject = new Mock < IReferencedProject > ( ) ;
81
+ mockReferencedProject . SetupGet ( rp => rp . AssemblyName ) . Returns ( "ReferencedProject" ) ;
82
+ mockCoverageProject . SetupGet ( cp => cp . IncludedReferencedProjects ) . Returns ( new List < IReferencedProject > { mockReferencedProject . Object } ) ;
83
+
84
+ var coverletExeArgumentsProvider = new CoverletExeArgumentsProvider ( ) ;
85
+ var coverletSettings = coverletExeArgumentsProvider . GetArguments ( mockCoverageProject . Object ) ;
86
+
87
+ Assert . True ( coverletSettings . Contains ( $@ "--include ""[ReferencedProject]*""") ) ;
88
+
89
+ }
90
+
91
+ [ Test ]
92
+ public void Should_Include_From_Settings ( )
93
+ {
94
+ var mockCoverageProject = SafeMockCoverageProject ( ) ;
95
+ mockCoverageProject . SetupGet ( cp => cp . Settings . Include ) . Returns ( new string [ ] { "[Include]*" } ) ;
96
+
97
+ var coverletExeArgumentsProvider = new CoverletExeArgumentsProvider ( ) ;
98
+ var coverletSettings = coverletExeArgumentsProvider . GetArguments ( mockCoverageProject . Object ) ;
99
+
100
+ Assert . True ( coverletSettings . Contains ( $@ "--include ""[Include]*""") ) ;
101
+
102
+ }
103
+
104
+ public void Should_Add_ExcludedReferencedProjects_As_Exclude ( )
105
+ {
106
+ var mockCoverageProject = SafeMockCoverageProject ( ) ;
107
+ var mockReferencedProject = new Mock < IReferencedProject > ( ) ;
108
+ mockReferencedProject . SetupGet ( rp => rp . AssemblyName ) . Returns ( "ReferencedProject" ) ;
109
+ mockCoverageProject . SetupGet ( cp => cp . ExcludedReferencedProjects ) . Returns ( new List < IReferencedProject > { mockReferencedProject . Object } ) ;
110
+
111
+ var coverletExeArgumentsProvider = new CoverletExeArgumentsProvider ( ) ;
112
+ var coverletSettings = coverletExeArgumentsProvider . GetArguments ( mockCoverageProject . Object ) ;
113
+
114
+ Assert . True ( coverletSettings . Contains ( $@ "--exclude ""[ReferencedProject]*""") ) ;
115
+
116
+ }
117
+
118
+ [ Test ]
119
+ public void Should_Exclude_From_Settings ( )
120
+ {
121
+ var mockCoverageProject = SafeMockCoverageProject ( ) ;
122
+ mockCoverageProject . SetupGet ( cp => cp . Settings . Exclude ) . Returns ( new string [ ] { "[Exclude]*" } ) ;
123
+
124
+ var coverletExeArgumentsProvider = new CoverletExeArgumentsProvider ( ) ;
125
+ var coverletSettings = coverletExeArgumentsProvider . GetArguments ( mockCoverageProject . Object ) ;
126
+
127
+ Assert . True ( coverletSettings . Contains ( $@ "--exclude ""[Exclude]*""") ) ;
128
+
129
+ }
130
+
131
+
46
132
private Mock < ICoverageProject > SafeMockCoverageProject ( )
47
133
{
48
134
var mockCoverageProject = new Mock < ICoverageProject > ( ) ;
49
135
mockCoverageProject . SetupGet ( coverageProject => coverageProject . IncludedReferencedProjects ) . Returns ( new List < IReferencedProject > ( ) ) ;
50
136
mockCoverageProject . SetupGet ( coverageProject => coverageProject . ExcludedReferencedProjects ) . Returns ( new List < IReferencedProject > ( ) ) ;
51
137
mockCoverageProject . SetupGet ( coverageProject => coverageProject . Settings ) . Returns ( new Mock < IAppOptions > ( ) . Object ) ;
138
+ mockCoverageProject . Setup ( coverageProject => coverageProject . ProjectName ) . Returns ( testProjectName ) ;
52
139
return mockCoverageProject ;
53
140
}
54
141
0 commit comments