示例#1
0
        public void CavetubeMainTest2_RoomIdNotFound()
        {
            var clientFactory = new MockCavetubeClientFactory();
            var mockClient    = clientFactory.MockCavetubeClient;
            var authFactory   = new MockCavetubeAuthFactory();
            var mockAuth      = authFactory.MockCavetubeAuth;
            var pso2Factory   = new MockPso2LogWatcherFactory();
            var mockPso2      = pso2Factory.MockPso2LogWatcher;

            var summary = new SummaryWrapper();
            //summary.RoomId = "roomid";
            var manualEvent = new ManualResetEvent(false);
            var check       = true;

            mockAuth.Setup(a => a.Login(It.IsAny <string>(), It.IsAny <string>())).Returns("apikey");
            mockClient.Setup(cl => cl.JoinRoom(It.IsAny <string>())).Raises(m => m.OnJoin += null, "roomid");
            mockClient.Setup(cl => cl.LeaveRoom()).Raises(m => m.OnLeave += null, "roomid");
            mockClient.Setup(cl => cl.GetSummary(It.IsAny <string>())).Returns(summary);
            mockClient.Setup(cl => cl.PostComment(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Callback <string, string, string>((name, message, apikey) =>
            {
                check = false;
                manualEvent.Set();
                Assert.AreEqual("someone", name);
                Assert.AreEqual("message", message);
                Assert.AreEqual("apikey", apikey);
            });

            var msg = new Pso2LogEventArgs();

            msg.From    = "someone";
            msg.SendTo  = "GUILD";
            msg.Message = "message";
            mockPso2.Setup(pso2 => pso2.Start()).Raises(pso2 => pso2.Pso2LogEvent += null, msg);

            var ex = Assert.Throws <ApplicationException>(() =>
            {
                Pso2LogSender.CavetubeMain(authFactory, clientFactory, pso2Factory, () =>
                {
                    check = false;
                    manualEvent.WaitOne();
                });
            });

            Assert.AreEqual("部屋IDの取得に失敗しました", ex.Message);

            Assert.True(check);
        }
示例#2
0
        internal static int Start(IEnumerable <string> args)
        {
            var summaryWrapper = new SummaryWrapper();
            var selectionMode  = ParseArgs(args);

            var testedViewModels = TestedSolutionsManager.RetrieveSlnInfoViewModels();

            var summaryResults = summaryWrapper.SummaryResults;

            switch (selectionMode)
            {
            case RunSelectionMode.All:
                using (var controller = new AnalyzerController(testedViewModels))
                {
                    controller.AnalysisManagers.CollectionChanged += (sender, changedEventArgs) =>
                    {
                        if (changedEventArgs.Action != NotifyCollectionChangedAction.Add)
                        {
                            return;
                        }

                        var newManager = changedEventArgs.NewItems.Cast <AnalysisManager>().FirstOrDefault();
                        if (newManager == null)
                        {
                            throw new InvalidOperationException("newManager can't be null");
                        }

                        newManager.AnalysisStatusChanged += (o, e) =>
                        {
                            var localSlnInfo = e.SolutionInfo;
                            var startupMode  = e.StartupMode;
                            var newStatus    = e.NewStatus;
                            var exitCode     = e.DevenvExitCode;
                            var statDesc     = newStatus.GetAnalysisStatusDescription();
                            var slnFileName  = newManager.SolutionInfo.SolutionFileName;

                            StatWrapper summaryResult;
                            if (summaryResults.TryGetValue(startupMode, out summaryResult))
                            {
                                switch (newStatus)
                                {
                                case AnalysisStatus.OkFinished:
                                    Interlocked.Increment(ref summaryResult.OkCount);
                                    CisTsLog(() => { _DefaultWriter.WriteLine(CisFormatString, startupMode, slnFileName, statDesc); });
                                    break;

                                case AnalysisStatus.DiffFinished:
                                    Interlocked.Increment(ref summaryResult.DiffCount);
                                    CisTsLog(() => { _DefaultWriter.WriteLine(CisFormatString, startupMode, slnFileName, statDesc); });
                                    break;

                                case AnalysisStatus.PluginCrashed:
                                    Interlocked.Increment(ref summaryResult.FailCount);
                                    CisTsLog(() =>
                                    {
                                        _DefaultWriter.WriteLine(CisFormatString, startupMode, slnFileName, statDesc);
                                        _DefaultWriter.WriteLine(Resources.CisFailMsg, slnFileName, startupMode,
                                                                 e.CrashReason.GetCrashMessage());
                                        _DefaultWriter.WriteLine(Resources.WatchActivityLog,
                                                                 newManager.LogFileName.GetDevenvActivityLog());
                                        if (exitCode != default(int))
                                        {
                                            _DefaultWriter.WriteLine(Resources.ExitCodeMessage, exitCode);
                                        }
                                    });
                                    break;
                                }
                            }

                            localSlnInfo.SetStatusValue(startupMode, newStatus);
                        };
                    };

                    controller.RunAll();
                }
                break;

            default:
                _DefaultWriter.WriteLine("Unknown option {0}. Press any key to exit...", selectionMode);
                Environment.Exit(0);
                break;
            }

            _DefaultWriter.WriteLine(
                "----------------------------------------------------------Stat----------------------------------------------------------");
            foreach (var mode in summaryResults.Keys)
            {
                var oks   = summaryResults[mode].OkCount;
                var diffs = summaryResults[mode].DiffCount;
                var fails = summaryResults[mode].FailCount;
                _DefaultWriter.WriteLine("Mode: {0}. Oks: {1}. Diffs: {2}. Fails: {3}", mode, oks, diffs, fails);
            }

            return
                (summaryResults.Keys.Sum(startMode => summaryResults[startMode].DiffCount) + // Кол-во Diff'ов...
                 summaryResults.Keys.Sum(startMode => summaryResults[startMode].FailCount)); // ... + Кол-во Fail'ов
        }