1+ using System . Text . Json . Nodes ;
2+ using Allure . Testing ;
3+
4+ namespace Allure . NUnit . Tests ;
5+
6+ class ParameterTests
7+ {
8+ public static IEnumerable < TestDataRow < AllureSampleRegistryEntry > > GetSingleParameterSamples ( )
9+ {
10+ IEnumerable < AllureSampleRegistryEntry > samples = [
11+ AllureSampleRegistry . AddParameterFromSetUp ,
12+ AllureSampleRegistry . AddParameterFromTest ,
13+ AllureSampleRegistry . AddParameterFromTearDown ,
14+ AllureSampleRegistry . OneNUnitTestCaseWithOneParameter ,
15+ ] ;
16+
17+ return samples . Select ( static ( sample ) =>
18+ new TestDataRow < AllureSampleRegistryEntry > ( sample , DisplayName : sample . Id ) ) ;
19+ }
20+
21+ [ Test ]
22+ [ MethodDataSource ( nameof ( GetSingleParameterSamples ) ) ]
23+ public async Task CheckParameterIsAdded ( AllureSampleRegistryEntry sample )
24+ {
25+ var results = await AllureSampleRunner . RunAsync ( sample ) ;
26+
27+ await Assert . That ( results . TestResults . Cast < JsonObject > ( ) ) . Count ( ) . IsEqualTo ( 1 ) ;
28+ var nodes = results . TestResults [ 0 ] [ "parameters" ] . AsArray ( ) . Cast < JsonObject > ( ) ;
29+ await Assert . That ( nodes ) . ContainsOnly (
30+ p => ( string ) p [ "name" ] == "foo" && ( string ) p [ "value" ] == "\" bar\" "
31+ ) ;
32+ }
33+
34+ [ Test ]
35+ public async Task CheckMaskedParameter ( )
36+ {
37+ var results = await AllureSampleRunner . RunAsync ( AllureSampleRegistry . MaskedParameter ) ;
38+
39+ await Assert . That ( results . TestResults . Cast < JsonObject > ( ) ) . Count ( ) . IsEqualTo ( 1 ) ;
40+
41+ var parameters = results . TestResults [ 0 ] [ "parameters" ] . AsArray ( ) . Cast < JsonObject > ( ) ;
42+ await Assert . That ( parameters ) . HasSingleItem ( ) . And . All (
43+ static ( p ) => ( string ) p [ "mode" ] == "masked"
44+ ) ;
45+ }
46+
47+ [ Test ]
48+ public async Task CheckHiddenParameter ( )
49+ {
50+ var results = await AllureSampleRunner . RunAsync ( AllureSampleRegistry . HiddenParameter ) ;
51+
52+ await Assert . That ( results . TestResults . Cast < JsonObject > ( ) ) . Count ( ) . IsEqualTo ( 1 ) ;
53+
54+ var parameters = results . TestResults [ 0 ] [ "parameters" ] . AsArray ( ) . Cast < JsonObject > ( ) ;
55+ await Assert . That ( parameters ) . HasSingleItem ( ) . And . All (
56+ static ( p ) => ( string ) p [ "mode" ] == "hidden"
57+ ) ;
58+ }
59+
60+ [ Test ]
61+ public async Task CheckExcludedParameter ( )
62+ {
63+ var results = await AllureSampleRunner . RunAsync ( AllureSampleRegistry . ExcludedParameter ) ;
64+
65+ await Assert . That ( results . TestResults . Cast < JsonObject > ( ) ) . Count ( ) . IsEqualTo ( 2 ) ;
66+
67+ var testResult1 = results . TestResults [ 0 ] ;
68+ var testResult2 = results . TestResults [ 1 ] ;
69+
70+ var testResult1Parameters = testResult1 [ "parameters" ] . AsArray ( ) . Cast < JsonObject > ( ) ;
71+ var testResult2Parameters = testResult2 [ "parameters" ] . AsArray ( ) . Cast < JsonObject > ( ) ;
72+ await Assert . That ( testResult1Parameters ) . Any (
73+ static ( p ) => ( string ) p [ "name" ] == "timestamp" && ( bool ) p [ "excluded" ] == true
74+ ) ;
75+ await Assert . That ( testResult2Parameters ) . Any (
76+ static ( p ) => ( string ) p [ "name" ] == "timestamp" && ( bool ) p [ "excluded" ] == true
77+ ) ;
78+
79+ // It must not affect historyId
80+ await Assert . That ( ( string ) testResult1 [ "historyId" ] ) . IsEqualTo ( ( string ) testResult2 [ "historyId" ] ) ;
81+ }
82+ }
0 commit comments