public void TestExplicitDenyGroup() { User user_a = new User("User_A"); User user_b = new User("User_B"); Group group_root = new Group("Group_root"); group_root.AddDescendant(user_b); Group group_a = new Group("Group_A"); group_a.AddDescendant(user_a); group_root.AddDescendant(group_a); InMemoryAccessManager accessManager = new InMemoryAccessManager(); SampleResource sampleResource = new SampleResource() { Identifier = "Key1" }; accessManager.CreateAccessControlContainer(sampleResource, user_a); AccessControlEntry accessControlEntry = new AccessControlEntry(Permission.Allow, Operation.Read, sampleResource, group_root); accessManager.AddEntry(sampleResource, accessControlEntry, user_a); AccessControlEntry denyEntry = new AccessControlEntry(Permission.Deny, Operation.Read, sampleResource, group_a); accessManager.AddEntry(sampleResource, denyEntry, user_a); Assert.True(accessManager.ValidateAccess(sampleResource, Operation.Read, group_root)); Assert.True(accessManager.ValidateAccess(sampleResource, Operation.Read, user_b)); Assert.False(accessManager.ValidateAccess(sampleResource, Operation.Read, group_a)); Assert.False(accessManager.ValidateAccess(sampleResource, Operation.Read, user_a)); }
static void Main(string[] args) { const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var phrases = new string[] { "Tell me a joke", "Tell me a joke", "I'd like to hear a joke", "Do you know any good jokes?", "Joke", "Tell joke", "Tell me something funny", "Make me laugh", "I want to hear a joke", "Can I hear a joke?", "I like jokes", "I'd like to hear a punny joke" }; foreach (var phrase in phrases) { var sample = SampleResource.Create( pathAssistantSid: "", pathTaskSid: "tell-a-joke", language: "en-us", taggedText: phrase ); Console.WriteLine(sample.Sid); } }
public void TestResourceSerializationWithPolymorphism() { var sampleResource = new SampleResource() { Size = "3", Child = new SampleResourceChild1(), Location = "EastUS" }; sampleResource.Tags = new Dictionary<string, string>(); sampleResource.Tags["tag1"] = "value1"; var serializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; serializeSettings.Converters.Add(new ResourceJsonConverter()); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter<SampleResource>("dType")); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter<SampleResourceChild>("dType")); string json = JsonConvert.SerializeObject(sampleResource, serializeSettings); Assert.Equal(@"{ ""dType"": ""SampleResource"", ""location"": ""EastUS"", ""tags"": { ""tag1"": ""value1"" }, ""properties"": { ""size"": ""3"", ""child"": { ""dType"": ""SampleResourceChild1"" } } }", json); }
static void Main(string[] args) { // To set up environmental variables, see http://twil.io/secure const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); const string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"); TwilioClient.Init(accountSid, authToken); var phrases = new string[] { "Tell me a joke", "Tell me a joke", "I'd like to hear a joke", "Do you know any good jokes?", "Joke", "Tell joke", "Tell me something funny", "Make me laugh", "I want to hear a joke", "Can I hear a joke?", "I like jokes", "I'd like to hear a punny joke" }; foreach (var phrase in phrases) { var sample = SampleResource.Create( pathAssistantSid: "", pathTaskSid: "tell-a-joke", language: "en-us", taggedText: phrase ); Console.WriteLine(sample.Sid); } }
public void TestResourceSerialization() { var sampleResource = new SampleResource() { Size = "3", Child = new SampleResourceChild1() { ChildName1 = "name1" }, Location = "EastUS", Plan = "testPlan", }; sampleResource.Tags = new Dictionary <string, string>(); sampleResource.Tags["tag1"] = "value1"; var serializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; serializeSettings.Converters.Add(new ResourceJsonConverter()); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter <SampleResourceChild>("dType")); string json = JsonConvert.SerializeObject(sampleResource, serializeSettings); Assert.Equal(@"{ ""location"": ""EastUS"", ""tags"": { ""tag1"": ""value1"" }, ""plan"": ""testPlan"", ""properties"": { ""size"": ""3"", ""child"": { ""dType"": ""SampleResourceChild1"", ""properties"": { ""name1"": ""name1"" } } } }", json); var deserializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; deserializeSettings.Converters.Add(new ResourceJsonConverter()); deserializeSettings.Converters.Add(new PolymorphicDeserializeJsonConverter <SampleResourceChild>("dType")); var deserializedResource = JsonConvert.DeserializeObject <SampleResource>(json, deserializeSettings); var jsonoverProcessed = JsonConvert.SerializeObject(deserializedResource, serializeSettings); Assert.Equal(json, jsonoverProcessed); }
static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); SampleResource.Delete( pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathTaskSid: "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathSid: "UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); }
public void TestReadFullResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"samples\": [{\"url\": \"https://preview.twilio.com/understand/Assistants/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples/UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"task_sid\": \"UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"sid\": \"UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"assistant_sid\": \"UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2015-07-30T20:00:00Z\",\"language\": \"language\",\"tagged_text\": \"tagged_text\",\"date_updated\": \"2015-07-30T20:00:00Z\",\"source_channel\": \"sms\"}],\"meta\": {\"first_page_url\": \"https://preview.twilio.com/understand/Assistants/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples?PageSize=50&Page=0\",\"previous_page_url\": null,\"key\": \"samples\",\"next_page_url\": null,\"url\": \"https://preview.twilio.com/understand/Assistants/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples?PageSize=50&Page=0\",\"page\": 0,\"page_size\": 50}}" )); var response = SampleResource.Read("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestDeleteResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.NoContent, "null" )); var response = SampleResource.Delete("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestFetchResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"url\": \"https://preview.twilio.com/understand/Assistants/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples/UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"task_sid\": \"UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"sid\": \"UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"assistant_sid\": \"UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2015-07-30T20:00:00Z\",\"language\": \"language\",\"tagged_text\": \"tagged_text\",\"date_updated\": \"2015-07-30T20:00:00Z\",\"source_channel\": null}" )); var response = SampleResource.Fetch("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestReadEmptyResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"samples\": [],\"meta\": {\"first_page_url\": \"https://preview.twilio.com/understand/Assistants/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples?PageSize=50&Page=0\",\"previous_page_url\": null,\"key\": \"samples\",\"next_page_url\": null,\"url\": \"https://preview.twilio.com/understand/Assistants/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples?PageSize=50&Page=0\",\"page\": 0,\"page_size\": 50}}" )); var response = SampleResource.Read("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestCreateResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.Created, "{\"url\": \"https://preview.twilio.com/understand/Services/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Intents/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples/UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"intent_sid\": \"UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"sid\": \"UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"service_sid\": \"UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"date_created\": \"2015-07-30T20:00:00Z\",\"language\": \"language\",\"tagged_text\": \"tagged_text\",\"date_updated\": \"2015-07-30T20:00:00Z\"}" )); var response = SampleResource.Create("UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "Language", "TaggedText", client: twilioRestClient); Assert.NotNull(response); }
static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var sample = SampleResource.Fetch( pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathTaskSid: "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathSid: "UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); Console.WriteLine(sample.DateCreated); }
static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var sample = SampleResource.Create( language: "Language", taggedText: "TaggedText", pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathIntentSid: "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); Console.WriteLine(sample.Sid); }
static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var samples = SampleResource.Read( pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathIntentSid: "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); foreach (var record in samples) { Console.WriteLine(record.Sid); } }
static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var sample = SampleResource.Update( language: "language", pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathTaskSid: "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathSid: "UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); Console.WriteLine(sample.DateCreated); }
public void TestResourceWithNullPropertiesSerialization() { var sampleResource = new SampleResource() { Location = "EastUS" }; sampleResource.Tags = new Dictionary <string, string>(); sampleResource.Tags["tag1"] = "value1"; var serializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; serializeSettings.Converters.Add(new TransformationJsonConverter()); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter <SampleResourceChild>("dType")); string json = JsonConvert.SerializeObject(sampleResource, serializeSettings); Assert.Equal(@"{ ""Location"": ""EastUS"", ""tags"": { ""tag1"": ""value1"" } }", json); var deserializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; deserializeSettings.Converters.Add(new TransformationJsonConverter()); deserializeSettings.Converters.Add(new PolymorphicDeserializeJsonConverter <SampleResourceChild>("dType")); var deserializedResource = JsonConvert.DeserializeObject <SampleResource>(json, deserializeSettings); var jsonoverProcessed = JsonConvert.SerializeObject(deserializedResource, serializeSettings); Assert.Equal(json, jsonoverProcessed); }
static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console // DANGER! This is insecure. See http://twil.io/secure const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var samples = SampleResource.Read( pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathTaskSid: "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", limit: 20 ); foreach (var record in samples) { Console.WriteLine(record.Sid); } }
public void TestDeleteRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Delete, Twilio.Rest.Domain.Preview, "/understand/Services/UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Intents/UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Samples/UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "" ); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { SampleResource.Delete("UAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "UDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "UFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
public void TestReadRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Get, Twilio.Rest.Domain.Preview, "/understand/Assistants/UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Samples", "" ); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { SampleResource.Read("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
public void TestUpdateRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Post, Twilio.Rest.Domain.Autopilot, "/v1/Assistants/UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Samples/UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "" ); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { SampleResource.Update("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
static void Main(string[] args) { const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; TwilioClient.Init(accountSid, authToken); var phrases = new string[] { "hello", "hi", "Hello", "Hi there!" }; foreach (var phrase in phrases) { var sample = SampleResource.Create( pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathTaskSid: "hello-world", language: "en-us", taggedText: phrase ); Console.WriteLine(sample.Sid); } }
static void Main(string[] args) { // To set up environmental variables, see http://twil.io/secure const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); const string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"); TwilioClient.Init(accountSid, authToken); var phrases = new string[] { "hello", "hi", "Hello", "Hi there!" }; foreach (var phrase in phrases) { var sample = SampleResource.Create( pathAssistantSid: "UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", pathTaskSid: "hello-world", language: "en-us", taggedText: phrase ); Console.WriteLine(sample.Sid); } }
public void TestCreateRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Post, Twilio.Rest.Domain.Preview, "/understand/Assistants/UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Samples", "" ); request.AddPostParam("Language", Serialize("language")); request.AddPostParam("TaggedText", Serialize("taggedText")); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { SampleResource.Create("UAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "UDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "language", "taggedText", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
public void TestResourceSerializationWithPolymorphism() { var sampleResource = new SampleResource() { Size = 3, Child = new SampleResourceChild1(), Location = "EastUS" }; sampleResource.Tags = new Dictionary <string, string>(); sampleResource.Tags["tag1"] = "value1"; var serializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; serializeSettings.Converters.Add(new TransformationJsonConverter()); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter <SampleResource>("dType")); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter <SampleResourceChild>("dType")); string json = JsonConvert.SerializeObject(sampleResource, serializeSettings); Assert.Equal(@"{ ""dType"": ""SampleResource"", ""Location"": ""EastUS"", ""tags"": { ""tag1"": ""value1"" }, ""properties"": { ""size"": 3, ""child"": { ""dType"": ""SampleResourceChild1"" } } }", json); }
public Task <ResourceCreationResult <SampleResource, string> > CreateAsync(SampleResource resource, IRequestContext context, CancellationToken cancellation) { throw new NotImplementedException(); }
public Task <SampleResource> UpdateAsync(SampleResource resource, IRequestContext context, CancellationToken cancellation) { throw new NotImplementedException(); }
public void TestResourceDeserializationException() { var sampleJson = @"{ ""Location"": ""EastUS"", ""tags"": { ""tag1"": ""value1"" }, ""properties"": { ""size"": ""String that should throw"", ""child1"": { ""@child.key"": ""key"" }, ""child"": { ""dType"": ""SampleResourceChild1"", ""properties"": { ""name1"": ""name1"" } } }, ""plan"": ""testPlan"" }"; var sampleResource = new SampleResource() { Size = 3, ChildKey = "key", Child = new SampleResourceChild1() { ChildName1 = "name1" }, Location = "EastUS", Plan = "testPlan", }; sampleResource.Tags = new Dictionary <string, string>(); sampleResource.Tags["tag1"] = "value1"; var deserializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; deserializeSettings.Converters.Add(new TransformationJsonConverter()); deserializeSettings.Converters.Add(new PolymorphicDeserializeJsonConverter <SampleResourceChild>("dType")); var serializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; serializeSettings.Converters.Add(new TransformationJsonConverter()); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter <SampleResourceChild>("dType")); bool exceptionThrown = false; try { JsonConvert.DeserializeObject <SampleResource>(sampleJson, deserializeSettings); } catch (JsonException ex) { Assert.True(ex.Message.Contains("String that should throw")); Assert.True(ex.Message.Contains("Could not convert string to integer")); exceptionThrown = true; } Assert.True(exceptionThrown, "JsonConverter should throw if the payload is non-serializable."); }
public void TestResourceWithNullPropertiesSerialization() { var sampleResource = new SampleResource() { Location = "EastUS" }; sampleResource.Tags = new Dictionary<string, string>(); sampleResource.Tags["tag1"] = "value1"; var serializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; serializeSettings.Converters.Add(new ResourceJsonConverter()); serializeSettings.Converters.Add(new PolymorphicSerializeJsonConverter<SampleResourceChild>("dType")); string json = JsonConvert.SerializeObject(sampleResource, serializeSettings); Assert.Equal(@"{ ""location"": ""EastUS"", ""tags"": { ""tag1"": ""value1"" } }", json); var deserializeSettings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Serialize, ContractResolver = new ReadOnlyJsonContractResolver() }; deserializeSettings.Converters.Add(new ResourceJsonConverter()); deserializeSettings.Converters.Add(new PolymorphicDeserializeJsonConverter<SampleResourceChild>("dType")); var deserializedResource = JsonConvert.DeserializeObject<SampleResource>(json, deserializeSettings); var jsonoverProcessed = JsonConvert.SerializeObject(deserializedResource, serializeSettings); Assert.Equal(json, jsonoverProcessed); }