Наследование: MonoBehaviour
Пример #1
0
 public async Task GetOrCreateAsync_SuccessfullyHandshakes()
 {
     using (var test = await PluginTest.CreateAsync())
     {
         Assert.Equal(PluginProtocolConstants.CurrentVersion, test.Plugin.Connection.ProtocolVersion);
     }
 }
Пример #2
0
        public async Task SendRequestAndReceiveResponseAsync_TimesOut()
        {
            using (var test = await PluginTest.CreateAsync())
            {
                Assert.Equal(PluginProtocolConstants.CurrentVersion, test.Plugin.Connection.ProtocolVersion);

                var serviceIndex = JObject.Parse("{}");
                var payload      = new GetOperationClaimsRequest(packageSourceRepository: "a", serviceIndex: serviceIndex);

                var stopwatch = Stopwatch.StartNew();

                await Assert.ThrowsAsync <TaskCanceledException>(
                    () => test.Plugin.Connection.SendRequestAndReceiveResponseAsync <GetOperationClaimsRequest, GetOperationClaimsResponse>(
                        MessageMethod.GetOperationClaims,
                        payload,
                        test.CancellationToken));

                var requestTimeout = test.Plugin.Connection.Options.RequestTimeout;

                var low  = requestTimeout.Add(TimeSpan.FromSeconds(-2));
                var high = TimeSpan.FromSeconds(requestTimeout.TotalSeconds * 2);

                Assert.InRange(stopwatch.Elapsed, low, high);
            }
        }
Пример #3
0
        public async Task GetOperationClaims_ReturnsSupportedClaims()
        {
            using (var test = await PluginTest.CreateAsync())
            {
                Assert.Equal(PluginProtocolConstants.CurrentVersion, test.Plugin.Connection.ProtocolVersion);

                // Send canned response
                var responseSenderTask = Task.Run(() => test.ResponseSender.StartSendingAsync(test.CancellationToken));
                await test.ResponseSender.SendAsync(
                    MessageType.Response,
                    MessageMethod.GetOperationClaims,
                    new GetOperationClaimsResponse(new OperationClaim[] { OperationClaim.DownloadPackage }));

                var serviceIndex = JObject.Parse("{}");
                var payload      = new GetOperationClaimsRequest(packageSourceRepository: "a", serviceIndex: serviceIndex);

                var response = await test.Plugin.Connection.SendRequestAndReceiveResponseAsync <GetOperationClaimsRequest, GetOperationClaimsResponse>(
                    MessageMethod.GetOperationClaims,
                    payload,
                    test.CancellationToken);

                Assert.NotNull(response);
                Assert.Equal(1, response.Claims.Count);
                Assert.Equal(OperationClaim.DownloadPackage, response.Claims[0]);
            }
        }
Пример #4
0
        public async Task Initialize_Succeeds()
        {
            using (var test = await PluginTest.CreateAsync())
            {
                Assert.Equal(PluginProtocolConstants.CurrentVersion, test.Plugin.Connection.ProtocolVersion);

                // Send canned response
                var responseSenderTask = Task.Run(() => test.ResponseSender.StartSendingAsync(test.CancellationToken));
                await test.ResponseSender.SendAsync(
                    MessageType.Response,
                    MessageMethod.Initialize,
                    new InitializeResponse(MessageResponseCode.Success));

                var clientVersion = MinClientVersionUtility.GetNuGetClientVersion().ToNormalizedString();
                var culture       = CultureInfo.CurrentCulture.Name;
                var payload       = new InitializeRequest(
                    clientVersion,
                    culture,
                    PluginConstants.RequestTimeout);

                var response = await test.Plugin.Connection.SendRequestAndReceiveResponseAsync <InitializeRequest, InitializeResponse>(
                    MessageMethod.Initialize,
                    payload,
                    test.CancellationToken);

                Assert.NotNull(response);
                Assert.Equal(MessageResponseCode.Success, response.ResponseCode);
            }
        }
Пример #5
0
        public void Test_GetPluginInfo()
        {
            Assert.Throws(typeof(ArgumentNullException), () => { PluginInfo.GetPluginInfo(null); });

            var plugin = new PluginTest();

            Assert.IsNotNull(plugin);

            var pluginInfo = PluginInfo.GetPluginInfo(plugin);

            Assert.AreEqual("GKTests", pluginInfo.Title);
            Assert.AreEqual("", pluginInfo.Description);
            Assert.AreEqual("Copyright © 2013-2017 by Sergey V. Zhdanovskih", pluginInfo.Copyright);
            Assert.AreEqual("1.0.0.0", pluginInfo.Version);
        }
Пример #6
0
        public async Task Fault_WritesExceptionToConsole()
        {
            using (var test = await PluginTest.CreateAsync())
                using (var closedEvent = new ManualResetEventSlim(initialState: false))
                {
                    Assert.Equal(PluginProtocolConstants.CurrentVersion, test.Plugin.Connection.ProtocolVersion);

                    test.Plugin.Closed += (object sender, EventArgs e) =>
                    {
                        closedEvent.Set();
                    };

                    // Send canned response
                    // This response is unexpected and will generate a protocol error.
                    var responseSenderTask = Task.Run(() => test.ResponseSender.StartSendingAsync(test.CancellationToken));
                    await test.ResponseSender.SendAsync(
                        MessageType.Response,
                        MessageMethod.Initialize,
                        new InitializeResponse(MessageResponseCode.Success));

                    var serviceIndex = JObject.Parse("{}");
                    var payload      = new GetOperationClaimsRequest(packageSourceRepository: "a", serviceIndex: serviceIndex);

                    string consoleOutput;

                    using (var spy = new ConsoleOutputSpy())
                    {
                        var requestTask = Task.Run(
                            () => test.Plugin.Connection.SendRequestAndReceiveResponseAsync <GetOperationClaimsRequest, GetOperationClaimsResponse>(
                                MessageMethod.GetOperationClaims,
                                payload,
                                test.CancellationToken));

                        closedEvent.Wait();

                        consoleOutput = spy.GetOutput();
                    }

                    Assert.Contains(
                        $"Terminating plugin '{test.Plugin.Name}' due to an unrecoverable fault:  NuGet.Protocol.Plugins.ProtocolException: A plugin protocol exception occurred.",
                        consoleOutput);
                }
        }
Пример #7
0
 PluginTest pt; //Si.
 void Start()
 {
     pt = GetComponent <PluginTest>();
 }
Пример #8
0
    private void Update()
    {
        PluginTest p = new PluginTest();;

        p.doTask();
    }