public void Test_Ctor_Sets_Properties_From_Ctor() { //arrange RestSharpCurrentThreadEnqueueRequestHandlerStrategy strat = new RestSharpCurrentThreadEnqueueRequestHandlerStrategy(@"http://www.google.com", Mock.Of <IDeserializerStrategy>(), Mock.Of <ISerializerStrategy>(), Mock.Of <INetworkMessageReceiver>(), 5, Mock.Of <INetworkMessageRouteBackService>()); Assert.NotNull(strat.GetType().GetProperty("serializer", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetProperty).GetValue(strat, new object[0])); }
} //we have to have a setter, can't use C#6 readonly prop because FasterFlect when using SceneJect will complain that it can't find a setter. //call on Start, not awake. public virtual void Start() { //Uses HTTPS so default to established encryption Status = NetStatus.EncryptionEstablished; enqueuStrat = new RestSharpCurrentThreadEnqueueRequestHandlerStrategy(BaseUrl, deserializer, serializer, this, 0, new DefaultNetworkMessageRouteBackService(new AUIDServiceCollection <INetPeer>(1), classLogger)); NetworkSendService = new WebPeerClientMessageSender(enqueuStrat); PeerDetails = new WebClientPeerDetails(BaseUrl, 0, 0); }
static void Main(string[] args) { new ProtobufnetRegistry().RegisterAuthenticationPayloads(); new ProtobufnetRegistry().Register(typeof(SimpleGameServerDetailsModel)); new ProtobufnetRegistry().Register(typeof(NetworkMessage)); new ProtobufnetRegistry().Register(typeof(AuthenticationRequest)); new ProtobufnetRegistry().Register(typeof(AuthenticationResponse)); new ProtobufnetRegistry().Register(typeof(RequestMessage)); new ProtobufnetRegistry().Register(typeof(ResponseMessage)); new ProtobufnetRegistry().RegisterServerSelectionPayloads(); Mock <INetworkMessageReceiver> reciever = new Mock <INetworkMessageReceiver>(MockBehavior.Strict); reciever.Setup(x => x.OnNetworkMessageReceive(It.IsAny <IResponseMessage>(), It.IsAny <IMessageParameters>())) .Callback <IResponseMessage, IMessageParameters>(Test); RestSharpCurrentThreadEnqueueRequestHandlerStrategy strat = new RestSharpCurrentThreadEnqueueRequestHandlerStrategy(@"https://localhost:44300", new ProtobufnetDeserializerStrategy(), new ProtobufnetSerializerStrategy(), reciever.Object, 0, Mock.Of <INetworkMessageRouteBackService>()); JWTTokenServiceManager tokenServiceManager = new JWTTokenServiceManager(); //fake token //tokenServiceManager.RegisterToken("eyJhbGciOiJSUzI1NiIsImtpZCI6IjYyN0YyQUFDMTZERTlENjNDMkY3NDQyQzk1OUFBNjEyQjIyOTlENDciLCJ0eXAiOiJKV1QiLCJ4NXQiOiJZbjhxckJiZW5XUEM5MFFzbFpxbUVySXBuVWMifQ.eyJBc3BOZXQuSWRlbnRpdHkuU2VjdXJpdHlTdGFtcCI6ImFjMWY2YTJmLTUyNzEtNDAxOS1iMDAyLTlhZjcxZjk5MWFjZCIsIlVzZXJOYW1lIjoiQWRtaW4iLCJqdGkiOiJkOWQ0NTQ2My1hYWNlLTQwZDktYjU2OS00YjhkM2EyYWQxNGIiLCJ1c2FnZSI6ImFjY2Vzc190b2tlbiIsInNjb3BlIjoidXNlciIsInN1YiI6ImQ1Njc5OTE2LTdkOTctNDZmMy04NmNlLTM1OTRiODBmMjhmZSIsIm5iZiI6MTQ3MDkwMTM5NCwiZXhwIjoxNDcwOTAzMTk0LCJpYXQiOjE0NzA5MDEzOTQsImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0OjQ0MzAwLyJ9.TfcaeRtk-rS8xJEH2moJiq_JjSyDiUKFkVpSzWbW2NRTdTIwyH3Asq84yj57vBrkbSE_gXdcUAqwtxseMF1-dBYfVFC0XxAaTPVNx17Ze-oSM9JjPM2MiZQvoVu-zaBXoJp_yiG1aKR8oAKuOjW_JDsZj35eBaPegC9hrcAq6usKTUqn-YrIgGulYBqAZQxoqHJpcjQMsXTFlsLSAb68AHD0PJa-3rWQQlc3qVx6K_wMkhCsAyN3v-VdkbhTC4uWQeJnxn159Ow9FT8SwS-hVb_f-fFX3I0jlhijWW2pH3IZWN93ZnYdxbuM1GY-49N0IjDuRa8YCDBnkZza_lkJkhjhzdSyZv3vX0IZNaBjB2wK49RtPCHHKEHc75tps2meWjy5kNGjTK0nRSfc6Gc-QtCkLFZRkbZTB7uW9i_mCWfk1m7Pzo_2tAclv9VRCQy0-IvvaeW8E5M8rYmxrRPGpPQsEKh7QdUlRoVeW28tyOK5MwR9HjhO-gAT6Fc9sCz6pXuf7G0tGiUINBeSCWhJIM4-71-kvf1C5oJJ76giknEnpf5i_vPke4gzk-uE4EdUQcrMBuRKMVI83Q8_0e4nQ0CekyZXQ2CDU_0Nh3oigRPiJa-QAiJOjWbzOHkOGgH-pyWbw2PWlmuZSJNMyP0QDQ0kztNzGUCHrNLNn35BccU"); strat.RegisterAuthenticationMiddleware(new ProtobufnetSerializerStrategy(), new ProtobufnetDeserializerStrategy(), tokenServiceManager); //AuthRequest request = new AuthRequest(IPAddress.Broadcast, new LoginDetails("test", new byte[5])); //AuthenticationRequest authRequest = new AuthenticationRequest("Admin", "Test123$"); strat.EnqueueRequest(new AuthenticationRequest("Admin", "Password69!")); //PacketPayload actualAuthRequest = (new ProtobufnetDeserializerStrategy()).Deserialize<PacketPayload>((new ProtobufnetSerializerStrategy().Serialize(request))); //strat.EnqueueRequest(new ProtobufnetSerializerStrategy().Serialize("hello"), // client, nameof(AuthRequest)); //strat.EnqueueRequest(null, // client, nameof(AuthRequest)); //strat.EnqueueRequest(actualAuthRequest); //Console.WriteLine($"isTokenAvailable: {tokenServiceManager.isTokenAvailable}\n\n\n\n Token: {tokenServiceManager.TokenString}\n\n\n\n TokenHeader: {tokenServiceManager.FullTokenHeaderValue}"); Console.ReadKey(); }