@@ -26,55 +26,48 @@ public class KeysControllerTests : IDisposable
26
26
{
27
27
private readonly ScriptSettingsManager _settingsManager ;
28
28
private readonly TempDirectory _secretsDirectory = new TempDirectory ( ) ;
29
- private Mock < ScriptHost > _hostMock ;
30
- private Mock < WebScriptHostManager > _managerMock ;
31
29
private Collection < FunctionDescriptor > _testFunctions ;
32
- private Dictionary < string , Collection < string > > _testFunctionErrors ;
33
30
private KeysController _testController ;
34
31
private Mock < ISecretManager > _secretsManagerMock ;
35
32
36
33
public KeysControllerTests ( )
37
34
{
38
35
_settingsManager = ScriptSettingsManager . Instance ;
39
36
_testFunctions = new Collection < FunctionDescriptor > ( ) ;
40
- _testFunctionErrors = new Dictionary < string , Collection < string > > ( ) ;
41
37
42
38
var config = new ScriptHostConfiguration ( ) ;
43
39
config . TraceWriter = new TestTraceWriter ( TraceLevel . Info ) ;
44
40
var environment = new NullScriptHostEnvironment ( ) ;
45
41
var eventManager = new Mock < IScriptEventManager > ( ) ;
46
- _hostMock = new Mock < ScriptHost > ( MockBehavior . Strict , new object [ ] { environment , eventManager . Object , config , null , null } ) ;
47
- _hostMock . Setup ( p => p . Functions ) . Returns ( _testFunctions ) ;
48
- _hostMock . Setup ( p => p . FunctionErrors ) . Returns ( _testFunctionErrors ) ;
49
42
50
43
WebHostSettings settings = new WebHostSettings ( ) ;
51
44
settings . SecretsPath = _secretsDirectory . Path ;
52
45
_secretsManagerMock = new Mock < ISecretManager > ( MockBehavior . Strict ) ;
53
- _managerMock = new Mock < WebScriptHostManager > ( MockBehavior . Strict , new object [ ] { config , new TestSecretManagerFactory ( _secretsManagerMock . Object ) , eventManager . Object , _settingsManager , settings } ) ;
54
- _managerMock . SetupGet ( p => p . Instance ) . Returns ( _hostMock . Object ) ;
55
46
56
47
var traceWriter = new TestTraceWriter ( TraceLevel . Verbose ) ;
57
48
58
- _testController = new KeysController ( _managerMock . Object , _secretsManagerMock . Object , traceWriter , null ) ;
59
-
60
- // setup some test functions
61
- string errorFunction = "ErrorFunction" ;
62
- var errors = new Collection < string > ( ) ;
63
- errors . Add ( "A really really bad error!" ) ;
64
- _testFunctionErrors . Add ( errorFunction , errors ) ;
49
+ _testController = new KeysController ( _secretsManagerMock . Object , traceWriter , null ) ;
65
50
66
51
var keys = new Dictionary < string , string >
67
52
{
68
53
{ "key1" , "secret1" }
69
54
} ;
70
- _secretsManagerMock . Setup ( p => p . GetFunctionSecretsAsync ( errorFunction , false ) ) . ReturnsAsync ( keys ) ;
55
+ _secretsManagerMock . Setup ( p => p . GetFunctionSecretsAsync ( "TestFunction1" , false ) ) . ReturnsAsync ( keys ) ;
56
+
57
+ keys = new Dictionary < string , string >
58
+ {
59
+ { "key1" , "secret1" }
60
+ } ;
61
+ _secretsManagerMock . Setup ( p => p . GetFunctionSecretsAsync ( "TestFunction2" , false ) ) . ReturnsAsync ( keys ) ;
62
+
63
+ _secretsManagerMock . Setup ( p => p . GetFunctionSecretsAsync ( "DNE" , false ) ) . ReturnsAsync ( ( IDictionary < string , string > ) null ) ;
71
64
}
72
65
73
66
[ Fact ]
74
- public async Task GetKeys_FunctionInError_ReturnsKeys ( )
67
+ public async Task GetKeys_ReturnsKeys ( )
75
68
{
76
69
_testController . Request = new HttpRequestMessage ( HttpMethod . Get , "https://local/admin/functions/keys" ) ;
77
- var result = ( OkNegotiatedContentResult < ApiModel > ) ( await _testController . Get ( "ErrorFunction " ) ) ;
70
+ var result = ( OkNegotiatedContentResult < ApiModel > ) ( await _testController . Get ( "TestFunction1 " ) ) ;
78
71
79
72
var content = ( JObject ) result . Content ;
80
73
var keys = content [ "keys" ] ;
@@ -83,28 +76,36 @@ public async Task GetKeys_FunctionInError_ReturnsKeys()
83
76
}
84
77
85
78
[ Fact ]
86
- public async Task PutKey_FunctionInError_Succeeds ( )
79
+ public async Task GetKeys_NoSecrets_ReturnsNotFound ( )
80
+ {
81
+ var result = await _testController . Get ( "DNE" ) ;
82
+
83
+ Assert . True ( result is NotFoundResult ) ;
84
+ }
85
+
86
+ [ Fact ]
87
+ public async Task PutKey_Succeeds ( )
87
88
{
88
89
_testController . Request = new HttpRequestMessage ( HttpMethod . Get , "https://local/admin/functions/keys/key2" ) ;
89
90
90
91
var key = new Key ( "key2" , "secret2" ) ;
91
92
var keyOperationResult = new KeyOperationResult ( key . Value , OperationResult . Updated ) ;
92
- _secretsManagerMock . Setup ( p => p . AddOrUpdateFunctionSecretAsync ( key . Name , key . Value , "ErrorFunction " , ScriptSecretsType . Function ) ) . ReturnsAsync ( keyOperationResult ) ;
93
+ _secretsManagerMock . Setup ( p => p . AddOrUpdateFunctionSecretAsync ( key . Name , key . Value , "TestFunction1 " , ScriptSecretsType . Function ) ) . ReturnsAsync ( keyOperationResult ) ;
93
94
94
- var result = ( OkNegotiatedContentResult < ApiModel > ) ( await _testController . Put ( "ErrorFunction " , key . Name , key ) ) ;
95
+ var result = ( OkNegotiatedContentResult < ApiModel > ) ( await _testController . Put ( "TestFunction1 " , key . Name , key ) ) ;
95
96
var content = ( JObject ) result . Content ;
96
97
Assert . Equal ( "key2" , content [ "name" ] ) ;
97
98
Assert . Equal ( "secret2" , content [ "value" ] ) ;
98
99
}
99
100
100
101
[ Fact ]
101
- public async Task DeleteKey_FunctionInError_Succeeds ( )
102
+ public async Task DeleteKey_Succeeds ( )
102
103
{
103
104
_testController . Request = new HttpRequestMessage ( HttpMethod . Get , "https://local/admin/functions/keys/key2" ) ;
104
105
105
- _secretsManagerMock . Setup ( p => p . DeleteSecretAsync ( "key2" , "ErrorFunction " , ScriptSecretsType . Function ) ) . ReturnsAsync ( true ) ;
106
+ _secretsManagerMock . Setup ( p => p . DeleteSecretAsync ( "key2" , "TestFunction1 " , ScriptSecretsType . Function ) ) . ReturnsAsync ( true ) ;
106
107
107
- var result = ( StatusCodeResult ) ( await _testController . Delete ( "ErrorFunction " , "key2" ) ) ;
108
+ var result = ( StatusCodeResult ) ( await _testController . Delete ( "TestFunction1 " , "key2" ) ) ;
108
109
Assert . Equal ( HttpStatusCode . NoContent , result . StatusCode ) ;
109
110
}
110
111
0 commit comments