public void ShouldSortByTypeFullNameAndAssignFullNameAsTypeId() { var sut = new MessageTypeCache(new[] { typeof(A.DTestMessage), typeof(B.CTestMessage), typeof(B.ATestMessage), typeof(A.BTestMessage) }); var all = sut.GetAllTypes().ToDictionary(x => x.Key, x => x.Value); Assert.Equal(4, all.Count); Assert.Equal(typeof(A.BTestMessage), all[typeof(A.BTestMessage).FullName !]);
/// <summary> /// Initializes an instance of the <see cref="RestEndPoint"/> class. /// </summary> /// <param name="serverConfiguration">The server configuration.</param> /// <param name="accessTokenService">The access token service.</param> public RestEndPoint(IOptions <ServerConfiguration> serverConfiguration, IAccessTokenService accessTokenService) { _accessTokenService = accessTokenService; _serverConfiguration = serverConfiguration.Value; MessageTypeCache.LoadMessageTypeCache(); _resourcesToTypesMap = new ConcurrentDictionary <string, Route>( new[] { Route.Create <AuthenticateRequest>("/users/authenticate"), Route.Create <RegisterRequest>("/users/register"), Route.Create <GetEnabledTrainingRoomsRequest>("/trainingrooms/enabled", "Logged in") }); _httpListener = new HttpListener(); _httpListener.Prefixes.Add($"http://{_serverConfiguration.Host}:{_serverConfiguration.RestPort}/"); }
public static MessageEnvelope CreateMessage(string className, string messageJson) { if (className.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(className)); } if (messageJson.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(messageJson)); } var messageType = MessageTypeCache.TryGetType(className); if (messageType == null) { throw new Exception($"Type {className} was not found in cache"); } return(new MessageEnvelope( JsonConvert.DeserializeObject(messageJson, messageType), messageType)); }
/// <summary> /// Initializes a new instance of <see cref="BaseNetworkConnector"/> class. /// </summary> /// <remarks> /// Also loads the <see cref="MessageTypeCache"/> on the first <see cref="BaseNetworkConnector"/> instance creation. /// </remarks> /// <exception cref="ArgumentNullException">If the messageProcessor is null; an argument exception is thrown.</exception> /// <param name="messageSerializer">The message serializer.</param> /// <param name="messageProcessor">The message processor.</param> protected BaseNetworkConnector(IMessageSerializer messageSerializer, IMessageProcessor messageProcessor) { _messageConstructor = new MessageConstructor(messageSerializer); _messageProcessor = messageProcessor ?? throw new ArgumentNullException(nameof(messageProcessor)); MessageTypeCache.LoadMessageTypeCache(); }
public void ShouldBeEmptyWhenNoMessages() { var sut = new MessageTypeCache(Enumerable.Empty <Type>()); Assert.Empty(sut.GetAllTypes()); }