@@ -29,7 +29,7 @@ public void AddHeaders_SameCaseDuplicatesExist_ThrowsException()
29
29
[ Test ]
30
30
public void AddHeaders_DifferentCaseDuplicatesExist_ThrowsException ( )
31
31
{
32
- var headers = new List < KeyValuePair < string , string > > ( )
32
+ var headers = new List < KeyValuePair < string , string > >
33
33
{
34
34
new KeyValuePair < string , string > ( "Accept" , "application/json" ) ,
35
35
new KeyValuePair < string , string > ( "Accept-Language" , "en-us,en;q=0.5" ) ,
@@ -46,7 +46,7 @@ public void AddHeaders_DifferentCaseDuplicatesExist_ThrowsException()
46
46
[ Test ]
47
47
public void AddHeaders_NoDuplicatesExist_Has3Headers ( )
48
48
{
49
- var headers = new List < KeyValuePair < string , string > > ( )
49
+ var headers = new List < KeyValuePair < string , string > >
50
50
{
51
51
new KeyValuePair < string , string > ( "Accept" , "application/json" ) ,
52
52
new KeyValuePair < string , string > ( "Accept-Language" , "en-us,en;q=0.5" ) ,
@@ -64,7 +64,7 @@ public void AddHeaders_NoDuplicatesExist_Has3Headers()
64
64
[ Test ]
65
65
public void AddHeaders_NoDuplicatesExistUsingDictionary_Has3Headers ( )
66
66
{
67
- var headers = new Dictionary < string , string > ( )
67
+ var headers = new Dictionary < string , string >
68
68
{
69
69
{ "Accept" , "application/json" } ,
70
70
{ "Accept-Language" , "en-us,en;q=0.5" } ,
@@ -78,5 +78,122 @@ public void AddHeaders_NoDuplicatesExistUsingDictionary_Has3Headers()
78
78
79
79
Assert . AreEqual ( 3 , httpParameters . Count ( ) ) ;
80
80
}
81
+
82
+ [ Test ]
83
+ public void AddOrUpdateHeader_ShouldUpdateExistingHeader_WhenHeaderExist ( )
84
+ {
85
+ // Arrange
86
+ var request = new RestRequest ( ) ;
87
+ request . AddHeader ( "Accept" , "application/xml" ) ;
88
+
89
+ // Act
90
+ request . AddOrUpdateHeader ( "Accept" , "application/json" ) ;
91
+
92
+ // Assert
93
+ var headers = request . Parameters . Where ( parameter => parameter . Type == ParameterType . HttpHeader ) . ToArray ( ) ;
94
+
95
+ Assert . AreEqual ( "application/json" , headers . First ( parameter => parameter . Name == "Accept" ) . Value ) ;
96
+ Assert . AreEqual ( 1 , headers . Length ) ;
97
+ }
98
+
99
+ [ Test ]
100
+ public void AddOrUpdateHeader_ShouldUpdateExistingHeader_WhenHeaderDoesNotExist ( )
101
+ {
102
+ // Arrange
103
+ var request = new RestRequest ( ) ;
104
+
105
+ // Act
106
+ request . AddOrUpdateHeader ( "Accept" , "application/json" ) ;
107
+
108
+ // Assert
109
+ var headers = request . Parameters . Where ( parameter => parameter . Type == ParameterType . HttpHeader ) . ToArray ( ) ;
110
+
111
+ Assert . AreEqual ( "application/json" , headers . First ( parameter => parameter . Name == "Accept" ) . Value ) ;
112
+ Assert . AreEqual ( 1 , headers . Length ) ;
113
+ }
114
+
115
+ [ Test ]
116
+ public void AddOrUpdateHeaders_ShouldAddHeaders_WhenNoneExists ( )
117
+ {
118
+ // Arrange
119
+ var headers = new Dictionary < string , string >
120
+ {
121
+ { "Accept" , "application/json" } ,
122
+ { "Accept-Language" , "en-us,en;q=0.5" } ,
123
+ { "Keep-Alive" , "300" }
124
+ } ;
125
+
126
+ var request = new RestRequest ( ) ;
127
+
128
+ // Act
129
+ request . AddOrUpdateHeaders ( headers ) ;
130
+
131
+ // Assert
132
+ var requestHeaders = request . Parameters . Where ( parameter => parameter . Type == ParameterType . HttpHeader ) . ToArray ( ) ;
133
+
134
+ Assert . AreEqual ( "application/json" , requestHeaders . First ( parameter => parameter . Name == "Accept" ) . Value ) ;
135
+ Assert . AreEqual ( "en-us,en;q=0.5" , requestHeaders . First ( parameter => parameter . Name == "Accept-Language" ) . Value ) ;
136
+ Assert . AreEqual ( "300" , requestHeaders . First ( parameter => parameter . Name == "Keep-Alive" ) . Value ) ;
137
+ Assert . AreEqual ( 3 , requestHeaders . Length ) ;
138
+ }
139
+
140
+ [ Test ]
141
+ public void AddOrUpdateHeaders_ShouldUpdateHeaders_WhenAllExists ( )
142
+ {
143
+ // Arrange
144
+ var headers = new Dictionary < string , string >
145
+ {
146
+ { "Accept" , "application/json" } ,
147
+ { "Keep-Alive" , "300" }
148
+ } ;
149
+ var updatedHeaders = new Dictionary < string , string >
150
+ {
151
+ { "Accept" , "application/xml" } ,
152
+ { "Keep-Alive" , "400" }
153
+ } ;
154
+
155
+ var request = new RestRequest ( ) ;
156
+ request . AddHeaders ( headers ) ;
157
+
158
+ // Act
159
+ request . AddOrUpdateHeaders ( updatedHeaders ) ;
160
+
161
+ // Assert
162
+ var requestHeaders = request . Parameters . Where ( parameter => parameter . Type == ParameterType . HttpHeader ) . ToArray ( ) ;
163
+
164
+ Assert . AreEqual ( "application/xml" , requestHeaders . First ( parameter => parameter . Name == "Accept" ) . Value ) ;
165
+ Assert . AreEqual ( "400" , requestHeaders . First ( parameter => parameter . Name == "Keep-Alive" ) . Value ) ;
166
+ Assert . AreEqual ( 2 , requestHeaders . Length ) ;
167
+ }
168
+
169
+ [ Test ]
170
+ public void AddOrUpdateHeaders_ShouldAddAndUpdateHeaders_WhenSomeExists ( )
171
+ {
172
+ // Arrange
173
+ var headers = new Dictionary < string , string >
174
+ {
175
+ { "Accept" , "application/json" } ,
176
+ { "Keep-Alive" , "300" }
177
+ } ;
178
+ var updatedHeaders = new Dictionary < string , string >
179
+ {
180
+ { "Accept" , "application/xml" } ,
181
+ { "Accept-Language" , "en-us,en;q=0.5" }
182
+ } ;
183
+
184
+ var request = new RestRequest ( ) ;
185
+ request . AddHeaders ( headers ) ;
186
+
187
+ // Act
188
+ request . AddOrUpdateHeaders ( updatedHeaders ) ;
189
+
190
+ // Assert
191
+ var requestHeaders = request . Parameters . Where ( parameter => parameter . Type == ParameterType . HttpHeader ) . ToArray ( ) ;
192
+
193
+ Assert . AreEqual ( "application/xml" , requestHeaders . First ( parameter => parameter . Name == "Accept" ) . Value ) ;
194
+ Assert . AreEqual ( "en-us,en;q=0.5" , requestHeaders . First ( parameter => parameter . Name == "Accept-Language" ) . Value ) ;
195
+ Assert . AreEqual ( "300" , requestHeaders . First ( parameter => parameter . Name == "Keep-Alive" ) . Value ) ;
196
+ Assert . AreEqual ( 3 , requestHeaders . Length ) ;
197
+ }
81
198
}
82
199
}
0 commit comments