4
4
using System ;
5
5
using System . Collections . Generic ;
6
6
using System . Linq ;
7
+ using Microsoft . Azure . WebJobs . Script . Config ;
7
8
using Microsoft . Azure . WebJobs . Script . WebHost ;
8
9
using Newtonsoft . Json . Linq ;
9
10
using Xunit ;
@@ -40,16 +41,23 @@ public void SerializeFunctionSecrets_ReturnsExpectedResult()
40
41
41
42
var jsonObject = JObject . Parse ( serializedSecret ) ;
42
43
var serializedSecrets = jsonObject . Property ( "keys" ) ? . Value ? . ToObject < List < Key > > ( ) ;
44
+ var source = jsonObject . Property ( "source" ) ? . Value ;
45
+ var hostName = jsonObject . Property ( "hostName" ) ? . Value ;
46
+ var instanceId = jsonObject . Property ( "instanceId" ) ? . Value ;
43
47
44
48
Assert . NotNull ( serializedSecret ) ;
45
49
AssertKeyCollectionsEquality ( secrets . Keys , serializedSecrets ) ;
50
+ Assert . Equal ( source , secrets . Source ) ;
51
+ Assert . Equal ( hostName , secrets . HostName ) ;
52
+ Assert . Equal ( instanceId , secrets . InstanceId ) ;
46
53
}
47
54
48
- [ Fact ]
49
- public void DeserializeFunctionSecrets_ReturnsExpectedResult ( )
55
+ [ Theory ]
56
+ [ InlineData ( "{ 'keys': [ { 'name': 'Key1', 'value': 'Value1', 'encrypted': false }, { 'name': 'Key2', 'value': 'Value2', 'encrypted': true } ] }" , null ) ]
57
+ [ InlineData ( "{ 'keys': [ { 'name': 'Key1', 'value': 'Value1', 'encrypted': false }, { 'name': 'Key2', 'value': 'Value2', 'encrypted': true } ], 'hostName': 'test', 'source': 'runtime'}" , "test" ) ]
58
+ public void DeserializeFunctionSecrets_ReturnsExpectedResult ( string serializedSecret , string hostName )
50
59
{
51
60
var serializer = new ScriptSecretSerializerV1 ( ) ;
52
- var serializedSecret = "{ 'keys': [ { 'name': 'Key1', 'value': 'Value1', 'encrypted': false }, { 'name': 'Key2', 'value': 'Value2', 'encrypted': true } ] }" ;
53
61
var expected = new List < Key >
54
62
{
55
63
new Key
@@ -67,14 +75,16 @@ public void DeserializeFunctionSecrets_ReturnsExpectedResult()
67
75
} ;
68
76
69
77
FunctionSecrets actual = serializer . DeserializeSecrets < FunctionSecrets > ( JObject . Parse ( serializedSecret ) ) ;
78
+ Assert . Equal ( hostName , actual . HostName ) ;
70
79
AssertKeyCollectionsEquality ( expected , actual . Keys ) ;
71
80
}
72
81
73
- [ Fact ]
74
- public void DeserializeHostSecrets_ReturnsExpectedResult ( )
82
+ [ Theory ]
83
+ [ InlineData ( "{'masterKey':{'name':'master','value':'1234','encrypted':false},'functionKeys':[{'name':'Key1','value':'Value1','encrypted':false},{'name':'Key2','value':'Value2','encrypted':true}]}" , null ) ]
84
+ [ InlineData ( "{'masterKey':{'name':'master','value':'1234','encrypted':false},'functionKeys':[{'name':'Key1','value':'Value1','encrypted':false},{'name':'Key2','value':'Value2','encrypted':true}], 'hostName': 'test', 'source': 'runtime' }" , "test" ) ]
85
+ public void DeserializeHostSecrets_ReturnsExpectedResult ( string serializedSecret , string hostName )
75
86
{
76
87
var serializer = new ScriptSecretSerializerV1 ( ) ;
77
- var serializedSecret = "{'masterKey':{'name':'master','value':'1234','encrypted':false},'functionKeys':[{'name':'Key1','value':'Value1','encrypted':false},{'name':'Key2','value':'Value2','encrypted':true}]}" ;
78
88
var expected = new HostSecrets
79
89
{
80
90
MasterKey = new Key { Name = "master" , Value = "1234" } ,
@@ -92,13 +102,16 @@ public void DeserializeHostSecrets_ReturnsExpectedResult()
92
102
Value = "Value2" ,
93
103
IsEncrypted = true
94
104
}
95
- }
105
+ } ,
106
+ HostName = hostName
96
107
} ;
97
108
98
109
HostSecrets actual = serializer . DeserializeSecrets < HostSecrets > ( JObject . Parse ( serializedSecret ) ) ;
99
110
100
111
Assert . NotNull ( actual ) ;
101
112
Assert . Equal ( expected . MasterKey , actual . MasterKey ) ;
113
+ Assert . Equal ( actual . HostName , hostName ) ;
114
+ Assert . Equal ( expected . Source , ScriptConstants . Runtime ) ;
102
115
AssertKeyCollectionsEquality ( expected . FunctionKeys , actual . FunctionKeys ) ;
103
116
}
104
117
@@ -132,17 +145,20 @@ public void SerializeHostSecrets_ReturnsExpectedResult()
132
145
var jsonObject = JObject . Parse ( serializedSecret ) ;
133
146
var functionSecrets = jsonObject . Property ( "functionKeys" ) ? . Value ? . ToObject < List < Key > > ( ) ;
134
147
var masterKey = jsonObject . Property ( "masterKey" ) ? . Value ? . ToObject < Key > ( ) ;
148
+ var instanceId = jsonObject . Property ( "instanceId" ) ? . Value ;
135
149
136
150
Assert . NotNull ( serializedSecret ) ;
137
151
Assert . Equal ( secrets . MasterKey , masterKey ) ;
138
152
AssertKeyCollectionsEquality ( secrets . FunctionKeys , functionSecrets ) ;
153
+ Assert . Equal ( instanceId , secrets . InstanceId ) ;
139
154
}
140
155
141
156
[ Theory ]
142
157
[ InlineData ( typeof ( HostSecrets ) , false , "{'masterKey': 'masterKeySecretString','functionKey': 'functionKeySecretString'}" ) ]
143
158
[ InlineData ( typeof ( FunctionSecrets ) , false , "{'key':'functionKeySecretString'}" ) ]
144
159
[ InlineData ( typeof ( HostSecrets ) , true , "{'masterKey': {'name': 'master','value': '1234','encrypted': false},'functionKeys': [{'name': 'Key1','value': 'Value1','encrypted': false},{'name': 'Key2','value': 'Value2','encrypted': true}]}" ) ]
145
160
[ InlineData ( typeof ( FunctionSecrets ) , true , "{'keys': [{'name': 'Key1','value': 'Value1','encrypted': false},{'name': 'Key2','value': 'Value2','encrypted': true}]}" ) ]
161
+ [ InlineData ( typeof ( HostSecrets ) , false , "{'masterKey': 'masterKeySecretString','functionKey': 'functionKeySecretString', 'hostName': 'test1', 'instanceId': 'test2', 'source': 'test3'}" ) ]
146
162
public void CanSerialize_WithValidHostPayload_ReturnsTrue ( Type type , bool expectedResult , string input )
147
163
{
148
164
var serializer = new ScriptSecretSerializerV1 ( ) ;
0 commit comments