2424using Xunit ;
2525using AWS . Lambda . Powertools . Parameters . SimpleSystemsManagement ;
2626using AWS . Lambda . Powertools . Parameters . Transform ;
27- using Moq ;
27+ using NSubstitute ;
2828
2929namespace HelloWorld . Tests
3030{
@@ -40,7 +40,7 @@ public MockParameterProviderConfigurationBuilder(ParameterProvider parameterProv
4040 private readonly IParameterProvider _parameterProvider ;
4141
4242 public MockParameterProviderConfigurationBuilder ( IParameterProvider parameterProvider ) : base (
43- ( new Mock < ParameterProvider > ( ) ) . Object )
43+ Substitute . For < ParameterProvider > ( ) )
4444 {
4545 _parameterProvider = parameterProvider ;
4646 }
@@ -67,26 +67,25 @@ public async Task TestGetSingleParameterWithSsmProvider()
6767 var parameterName = Guid . NewGuid ( ) . ToString ( "D" ) ;
6868 var parameterValue = Guid . NewGuid ( ) . ToString ( "D" ) ;
6969
70- Environment . SetEnvironmentVariable ( EnvironmentVariableNames . SsmSingleParameterNameVariableName , parameterName ) ;
70+ Environment . SetEnvironmentVariable ( EnvironmentVariableNames . SsmSingleParameterNameVariableName ,
71+ parameterName ) ;
7172
72- var provider = new Mock < ISsmProvider > ( ) ;
73- provider . Setup ( c =>
74- c . GetAsync ( parameterName )
75- ) . ReturnsAsync ( parameterValue ) ;
73+ var provider = Substitute . For < ISsmProvider > ( ) ;
74+ provider . GetAsync ( parameterName ) . Returns ( parameterValue ) ;
7675
7776 // Act
78- var helper = new ParameterLookupHelper ( provider . Object , parameterProviderType ) ;
77+ var helper = new ParameterLookupHelper ( provider , parameterProviderType ) ;
7978 var result = await helper . GetSingleParameterWithSsmProvider ( ) . ConfigureAwait ( false ) ;
80-
79+
8180 // Assert
82- provider . Verify ( v => v . GetAsync ( parameterName ) , Times . Once ) ;
81+ await provider . Received ( 1 ) . GetAsync ( parameterName ) ;
8382 Assert . NotNull ( result ) ;
8483 Assert . Equal ( parameterProviderType , result . Provider ) ;
8584 Assert . Equal ( parameterLookupMethod , result . Method ) ;
8685 Assert . Equal ( parameterName , result . Key ) ;
8786 Assert . Equal ( parameterValue , result . Value ) ;
8887 }
89-
88+
9089 [ Fact ]
9190 public async Task TestGetMultipleParametersWithSsmProvider ( )
9291 {
@@ -100,24 +99,23 @@ public async Task TestGetMultipleParametersWithSsmProvider()
10099 { Guid . NewGuid ( ) . ToString ( "D" ) , Guid . NewGuid ( ) . ToString ( "D" ) }
101100 } ;
102101
103- Environment . SetEnvironmentVariable ( EnvironmentVariableNames . SsmMultipleParametersPathPrefixVariableName , parameterPathPrefix ) ;
102+ Environment . SetEnvironmentVariable ( EnvironmentVariableNames . SsmMultipleParametersPathPrefixVariableName ,
103+ parameterPathPrefix ) ;
104104
105- var provider = new Mock < ISsmProvider > ( ) ;
106- provider . Setup ( c =>
107- c . GetMultipleAsync ( parameterPathPrefix )
108- ) . ReturnsAsync ( parameterValues ) ;
105+ var provider = Substitute . For < ISsmProvider > ( ) ;
106+ provider . GetMultipleAsync ( parameterPathPrefix ) . Returns ( parameterValues ) ;
109107
110108 // Act
111- var helper = new ParameterLookupHelper ( provider . Object , parameterProviderType ) ;
109+ var helper = new ParameterLookupHelper ( provider , parameterProviderType ) ;
112110 var result = await helper . GetMultipleParametersWithSsmProvider ( ) . ConfigureAwait ( false ) ;
113-
111+
114112 // Assert
115- provider . Verify ( v => v . GetMultipleAsync ( parameterPathPrefix ) , Times . Once ) ;
113+ await provider . Received ( 1 ) . GetMultipleAsync ( parameterPathPrefix ) ;
116114 Assert . NotNull ( result ) ;
117115 Assert . Equal ( parameterProviderType , result . Provider ) ;
118116 Assert . Equal ( parameterLookupMethod , result . Method ) ;
119117 Assert . Equal ( parameterPathPrefix , result . Key ) ;
120-
118+
121119 var values = result . Value as IDictionary < string , string > ;
122120 Assert . NotNull ( values ) ;
123121 Assert . Equal ( parameterValues . Count , values . Count ) ;
@@ -126,7 +124,7 @@ public async Task TestGetMultipleParametersWithSsmProvider()
126124 Assert . Equal ( parameterValues . Last ( ) . Key , values . Last ( ) . Key ) ;
127125 Assert . Equal ( parameterValues . Last ( ) . Value , values . Last ( ) . Value ) ;
128126 }
129-
127+
130128 [ Fact ]
131129 public async Task TestGetSingleSecretWithSecretsProvider ( )
132130 {
@@ -142,33 +140,30 @@ public async Task TestGetSingleSecretWithSecretsProvider()
142140
143141 Environment . SetEnvironmentVariable ( EnvironmentVariableNames . SecretsManagerSecretName , secretName ) ;
144142
145- var provider = new Mock < ISecretsProvider > ( ) ;
146- provider . Setup ( c =>
147- c . GetAsync < SecretRecord > ( secretName )
148- ) . ReturnsAsync ( secretValue ) ;
149- provider . Setup ( c =>
150- c . WithTransformation ( Transformation . Json )
151- ) . Returns ( new MockParameterProviderConfigurationBuilder ( provider . Object ) ) ;
143+ var provider = Substitute . For < ISecretsProvider > ( ) ;
144+ var configBuilder = new MockParameterProviderConfigurationBuilder ( provider ) ;
145+ provider . GetAsync < SecretRecord > ( secretName ) . Returns ( secretValue ) ;
146+ provider . WithTransformation ( Transformation . Json ) . Returns ( configBuilder ) ;
152147
153148 // Act
154- var helper = new ParameterLookupHelper ( provider . Object , parameterProviderType ) ;
149+ var helper = new ParameterLookupHelper ( provider , parameterProviderType ) ;
155150 var result = await helper . GetSingleSecretWithSecretsProvider ( ) . ConfigureAwait ( false ) ;
156-
151+
157152 // Assert
158- provider . Verify ( v => v . GetAsync < SecretRecord > ( secretName ) , Times . Once ) ;
159- provider . Verify ( v => v . WithTransformation ( Transformation . Json ) , Times . Once ) ;
153+ await provider . Received ( 1 ) . GetAsync < SecretRecord > ( secretName ) ;
154+ provider . Received ( 1 ) . WithTransformation ( Transformation . Json ) ;
160155 Assert . NotNull ( result ) ;
161156 Assert . Equal ( parameterProviderType , result . Provider ) ;
162157 Assert . Equal ( parameterLookupMethod , result . Method ) ;
163158 Assert . Equal ( secretName , result . Key ) ;
164159 Assert . Equal ( secretName , result . Key ) ;
165-
160+
166161 var value = result . Value as SecretRecord ;
167162 Assert . NotNull ( value ) ;
168163 Assert . Equal ( secretValue . Username , value . Username ) ;
169164 Assert . Equal ( secretValue . Password , value . Password ) ;
170165 }
171-
166+
172167 [ Fact ]
173168 public async Task TestGetSingleParameterWithDynamoDBProvider ( )
174169 {
@@ -179,31 +174,28 @@ public async Task TestGetSingleParameterWithDynamoDBProvider()
179174 var dynamoDbHashKey = Guid . NewGuid ( ) . ToString ( "D" ) ;
180175 var parameterValue = Guid . NewGuid ( ) . ToString ( "D" ) ;
181176
182- Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBSingleParameterTableName , dynamoDbTableName ) ;
177+ Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBSingleParameterTableName ,
178+ dynamoDbTableName ) ;
183179 Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBSingleParameterId , dynamoDbHashKey ) ;
184180
185- var provider = new Mock < IDynamoDBProvider > ( ) ;
186- provider . Setup ( c =>
187- c . GetAsync ( dynamoDbHashKey )
188- ) . ReturnsAsync ( parameterValue ) ;
189- provider . Setup ( c =>
190- c . UseTable ( dynamoDbTableName )
191- ) . Returns ( provider . Object ) ;
192-
181+ var provider = Substitute . For < IDynamoDBProvider > ( ) ;
182+ provider . GetAsync ( dynamoDbHashKey ) . Returns ( parameterValue ) ;
183+ provider . UseTable ( dynamoDbTableName ) . Returns ( provider ) ;
184+
193185 // Act
194- var helper = new ParameterLookupHelper ( provider . Object , parameterProviderType ) ;
186+ var helper = new ParameterLookupHelper ( provider , parameterProviderType ) ;
195187 var result = await helper . GetSingleParameterWithDynamoDBProvider ( ) . ConfigureAwait ( false ) ;
196-
188+
197189 // Assert
198- provider . Verify ( v => v . GetAsync ( dynamoDbHashKey ) , Times . Once ) ;
199- provider . Verify ( v => v . UseTable ( dynamoDbTableName ) , Times . Once ) ;
190+ await provider . Received ( 1 ) . GetAsync ( dynamoDbHashKey ) ;
191+ provider . Received ( 1 ) . UseTable ( dynamoDbTableName ) ;
200192 Assert . NotNull ( result ) ;
201193 Assert . Equal ( parameterProviderType , result . Provider ) ;
202194 Assert . Equal ( parameterLookupMethod , result . Method ) ;
203195 Assert . Equal ( dynamoDbHashKey , result . Key ) ;
204196 Assert . Equal ( parameterValue , result . Value ) ;
205197 }
206-
198+
207199 [ Fact ]
208200 public async Task TestGetMultipleParametersWithDynamoDBProvider ( )
209201 {
@@ -218,29 +210,27 @@ public async Task TestGetMultipleParametersWithDynamoDBProvider()
218210 { Guid . NewGuid ( ) . ToString ( "D" ) , Guid . NewGuid ( ) . ToString ( "D" ) }
219211 } ;
220212
221- Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBMultipleParametersTableName , dynamoDbTableName ) ;
222- Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBMultipleParametersParameterId , dynamoDbHashKey ) ;
223-
224- var provider = new Mock < IDynamoDBProvider > ( ) ;
225- provider . Setup ( c =>
226- c . GetMultipleAsync ( dynamoDbHashKey )
227- ) . ReturnsAsync ( parameterValues ) ;
228- provider . Setup ( c =>
229- c . UseTable ( dynamoDbTableName )
230- ) . Returns ( provider . Object ) ;
231-
213+ Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBMultipleParametersTableName ,
214+ dynamoDbTableName ) ;
215+ Environment . SetEnvironmentVariable ( EnvironmentVariableNames . DynamoDBMultipleParametersParameterId ,
216+ dynamoDbHashKey ) ;
217+
218+ var provider = Substitute . For < IDynamoDBProvider > ( ) ;
219+ provider . GetMultipleAsync ( dynamoDbHashKey ) . Returns ( parameterValues ) ;
220+ provider . UseTable ( dynamoDbTableName ) . Returns ( provider ) ;
221+
232222 // Act
233- var helper = new ParameterLookupHelper ( provider . Object , parameterProviderType ) ;
223+ var helper = new ParameterLookupHelper ( provider , parameterProviderType ) ;
234224 var result = await helper . GetMultipleParametersWithDynamoDBProvider ( ) . ConfigureAwait ( false ) ;
235-
225+
236226 // Assert
237- provider . Verify ( v => v . GetMultipleAsync ( dynamoDbHashKey ) , Times . Once ) ;
238- provider . Verify ( v => v . UseTable ( dynamoDbTableName ) , Times . Once ) ;
227+ await provider . Received ( 1 ) . GetMultipleAsync ( dynamoDbHashKey ) ;
228+ provider . Received ( 1 ) . UseTable ( dynamoDbTableName ) ;
239229 Assert . NotNull ( result ) ;
240230 Assert . Equal ( parameterProviderType , result . Provider ) ;
241231 Assert . Equal ( parameterLookupMethod , result . Method ) ;
242232 Assert . Equal ( dynamoDbHashKey , result . Key ) ;
243-
233+
244234 var values = result . Value as IDictionary < string , string > ;
245235 Assert . NotNull ( values ) ;
246236 Assert . Equal ( parameterValues . Count , values . Count ) ;
0 commit comments