public static IHost NewHost(Type type, WebPubSubConfigProvider ext = null, Dictionary <string, string> configuration = null) { var builder = new HostBuilder() .ConfigureServices(services => { services.AddSingleton <ITypeLocator>(new FakeTypeLocator(type)); if (ext != null) { services.AddSingleton <IExtensionConfigProvider>(ext); } services.AddSingleton <IExtensionConfigProvider>(new TestExtensionConfig()); }) .ConfigureWebJobs(webJobsBuilder => { webJobsBuilder.AddWebPubSub(); webJobsBuilder.UseHostId(Guid.NewGuid().ToString("n")); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddProvider(new TestLoggerProvider()); }); if (configuration != null) { builder.ConfigureAppConfiguration(b => { b.AddInMemoryCollection(configuration); }); } return(builder.Build()); }
public void TestInvalidSendConvert(string actionName) { var input = @"{ ""actionName"":""{0}"",""userId"":""user"", ""group"":""group1"",""connectionId"":""connection"",""data"": {""type"":""binary"", ""data"": [66, 105, 110, 97, 114, 121, 68, 97, 116, 97]} ,""dataType"":""binary"", ""reason"":""close"", ""excluded"":[""aa"",""bb""]}"; var replacedInput = input.Replace("{0}", actionName); var jObject = JObject.Parse(replacedInput); Assert.Throws <ArgumentException>(() => WebPubSubConfigProvider.ConvertToWebPubSubOperation(jObject)); }
public void TestOutputConvert(string actionName) { var input = @"{ ""actionName"":""{0}"",""userId"":""user"", ""group"":""group1"",""connectionId"":""connection"",""data"":""test"",""dataType"":""text"", ""reason"":""close"", ""excluded"":[""aa"",""bb""]}"; var replacedInput = input.Replace("{0}", actionName.Substring(0, actionName.IndexOf("Action"))); var jObject = JObject.Parse(replacedInput); var converted = WebPubSubConfigProvider.ConvertToWebPubSubOperation(jObject); Assert.AreEqual(actionName, converted.ActionName.ToString()); }
public void TestInvalidWebPubSubOperationConvert(string actionName) { var input = @"{ ""actionName"":""{0}"",""userId"":""user"", ""group"":""group1"",""connectionId"":""connection"",""data"":""test"",""dataType"":""text"", ""reason"":""close"", ""excluded"":[""aa"",""bb""]}"; var replacedInput = input.Replace("{0}", actionName); var jObject = JObject.Parse(replacedInput); // Throws excpetion of not able to de-serialize to abstract class. var ex = Assert.Throws <ArgumentException>(() => WebPubSubConfigProvider.ConvertToWebPubSubOperation(jObject)); Assert.AreEqual($"Not supported WebPubSubOperation: {actionName}.", ex.Message); }
public void TestValidSendBinaryConvert(Type actionName) { var input = @"{ ""actionName"":""{0}"",""userId"":""user"", ""group"":""group1"",""connectionId"":""connection"",""data"": {""type"":""Buffer"", ""data"": [66, 105, 110, 97, 114, 121, 68, 97, 116, 97]} ,""dataType"":""binary"", ""reason"":""close"", ""excluded"":[""aa"",""bb""]}"; var replacedInput = input.Replace("{0}", actionName.Name.Substring(0, actionName.Name.IndexOf("Action"))); var jObject = JObject.Parse(replacedInput); var converted = WebPubSubConfigProvider.ConvertToWebPubSubOperation(jObject); // Use json format for message value validation. Assert.AreEqual("BinaryData", JObject.FromObject(converted)["data"].ToString()); }
public void TestOutputConvert(string operationKind) { WebPubSubConfigProvider.RegisterJsonConverter(); var input = @"{ ""operationKind"":""{0}"",""userId"":""user"", ""group"":""group1"",""connectionId"":""connection"",""message"":""test"",""dataType"":""text"", ""reason"":""close""}"; var replacedInput = input.Replace("{0}", operationKind); var jObject = JObject.Parse(replacedInput); var converted = WebPubSubConfigProvider.ConvertToWebPubSubOperation(jObject); Assert.AreEqual(operationKind, converted.OperationKind.ToString()); }
public JObjectTests() { WebPubSubConfigProvider.RegisterJsonConverter(); }