public override async Task TestCancel()
        {
            var message = new Message(0, "nation Testlandia", new ConsoleMessageChannel());
            var command = new NationStatsCommand(_serviceProvider);
            var source  = new CancellationTokenSource();

            source.CancelAfter(250);
            command.SetCancellationToken(source.Token);
            TestRequestDispatcher.PrepareNextRequest(RequestStatus.Canceled);
            var response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Error);
            response.Content.Should().StartWith($"Something went wrong{Environment.NewLine}{Environment.NewLine}Request/Command has been canceled. Sorry :(");
        }
        public override async Task TestExecuteSuccess()
        {
            var message         = new Message(0, "nation Testlandia", new ConsoleMessageChannel());
            var command         = new NationStatsCommand(_serviceProvider);
            var nstatsXmlResult = XDocument.Load(Path.Combine("TestData", "testlandia-nation-stats.xml"));

            TestRequestDispatcher.PrepareNextRequest(response: nstatsXmlResult);
            var rofficersXmlResult = XDocument.Load(Path.Combine("TestData", "testregionia-officers.xml"));

            TestRequestDispatcher.PrepareNextRequest(response: rofficersXmlResult);
            var response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Success);
            var dateJoined = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(99.94290131428));

            response.Content.Should().StartWith($"The дСвобода Мысл of Testlandia{Environment.NewLine}{Environment.NewLine}38.068 billion Testlandians | Last active 7 hours ago{Environment.NewLine}{Environment.NewLine}Founded{Environment.NewLine}01.01.1970 (0){Environment.NewLine}{Environment.NewLine}Region                                                            Regional Officer                   {Environment.NewLine}[Testregionia](https://www.nationstates.net/region=testregionia)  <h1>Field Tester</h1>  {Environment.NewLine}{Environment.NewLine}Resident Since{Environment.NewLine}{dateJoined:dd.MM.yyyy} (99 d){Environment.NewLine}{Environment.NewLine}New York Times Democracy{Environment.NewLine}C: Excellent (69.19) | E: Very Strong (80.00) | P: Superb (76.29){Environment.NewLine}{Environment.NewLine}WA Member{Environment.NewLine}0 endorsements | 6106.00 Influence (Eminence Grise){Environment.NewLine}{Environment.NewLine}WA Vote{Environment.NewLine}GA: UNDECIDED | SC: UNDECIDED{Environment.NewLine}{Environment.NewLine}Links{Environment.NewLine}[Dispatches](https://www.nationstates.net/page=dispatches/nation=testlandia)  |  [Cards Deck](https://www.nationstates.net/page=deck/nation=testlandia)  |  [Challenge](https://www.nationstates.net/page=challenge?entity_name=testlandia)");
        }
Esempio n. 3
0
        public async override Task TestCancel()
        {
            _dumpDataService.SetupGet(m => m.Status).Returns(Enums.DumpDataStatus.Ready);
            var collection = ConfigureServices();

            _serviceProvider = collection.BuildServiceProvider();
            var message = new Message(0, "region The Free Nations Region", new ConsoleMessageChannel());
            var command = new RegionStatsCommand(_serviceProvider);
            var source  = new CancellationTokenSource();

            source.CancelAfter(250);
            command.SetCancellationToken(source.Token);
            TestRequestDispatcher.PrepareNextRequest(RequestStatus.Canceled);
            var response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Error);
            response.Content.Should().StartWith($"Something went wrong{Environment.NewLine}{Environment.NewLine}Request/Command has been canceled. Sorry :(");
        }
        public override async Task TestExecuteWithErrors()
        {
            var message = new Message(0, "nation Testlandia", new ConsoleMessageChannel());
            var command = new NationStatsCommand(_serviceProvider);

            // HttpRequestFailed
            TestRequestDispatcher.PrepareNextRequest(RequestStatus.Failed, exception: new HttpRequestFailedException());
            var response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Error);
            response.Content.Should().StartWith($"Something went wrong{Environment.NewLine}{Environment.NewLine}Exception of type 'NationStatesSharp.HttpRequestFailedException' was thrown.");
            // InvalidOperation
            response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Error);
            response.Content.Should().StartWith($"Something went wrong{Environment.NewLine}{Environment.NewLine}An unexpected error occured. Please contact the bot administrator.");
            // NationStats Response not XmlDocument
            TestRequestDispatcher.PrepareNextRequest();
            response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Error);
            response.Content.Should().StartWith($"Something went wrong{Environment.NewLine}{Environment.NewLine}An unexpected error occured. Please contact the bot administrator.");
            // RegionalOfficer Response not XmlDocument
            var nstatsXmlResult = XDocument.Load(Path.Combine("TestData", "testlandia-nation-stats.xml"));

            TestRequestDispatcher.PrepareNextRequest(response: nstatsXmlResult);
            TestRequestDispatcher.PrepareNextRequest();
            response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Error);
            response.Content.Should().StartWith($"Something went wrong{Environment.NewLine}{Environment.NewLine}An unexpected error occured. Please contact the bot administrator.");
            // Empty RegionalOfficer Xml
            TestRequestDispatcher.PrepareNextRequest(response: nstatsXmlResult);
            var roResult = XDocument.Parse("<xml></xml>");

            TestRequestDispatcher.PrepareNextRequest(response: roResult);
            response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Success);
            response.Content.Should().StartWith($"The дСвобода Мысл of Testlandia");
        }
Esempio n. 5
0
        public async override Task TestExecuteSuccess()
        {
            _dumpDataService.SetupGet(m => m.Status).Returns(Enums.DumpDataStatus.Ready);
            _dumpDataService.Setup(m => m.GetRegionByName(It.IsAny <string>())).Returns(new Data.Models.Dump.DumpRegion()
            {
                Delegate = "greenerica", Founder = "Testlandia"
            });
            _dumpDataService.Setup(m => m.GetNationByName(It.Is <string>(m => m == "greenerica"))).Returns(new Data.Models.Dump.DumpNation()
            {
                UnescapedName = "Greenerica", Endorsements = new List <string>()
            });
            _dumpDataService.Setup(m => m.GetNationByName(It.Is <string>(m => m.ToLower() == "testlandia"))).Returns(new Data.Models.Dump.DumpNation()
            {
                UnescapedName = "Testlandia"
            });
            _dumpDataService.Setup(m => m.GetNationByName(It.Is <string>(m => m.ToLower() == "olvaria"))).Returns(new Data.Models.Dump.DumpNation()
            {
                UnescapedName = "Olvaria"
            });
            _dumpDataService.Setup(m => m.GetWANationsByRegionName(It.IsAny <string>())).Returns(Enumerable.Repeat(new DumpNation()
            {
            }, 4).ToList());
            _dumpDataService.Setup(m => m.GetEndoSumByRegionName(It.IsAny <string>())).Returns(4);
            var collection = ConfigureServices();

            _serviceProvider = collection.BuildServiceProvider();
            var message         = new Message(0, "region Testregionia", new ConsoleMessageChannel());
            var command         = new RegionStatsCommand(_serviceProvider);
            var nstatsXmlResult = XDocument.Load(Path.Combine("TestData", "testregionia-region-stats.xml"));

            TestRequestDispatcher.PrepareNextRequest(response: nstatsXmlResult);
            var rofficersXmlResult = XDocument.Load(Path.Combine("TestData", "testregionia-officers.xml"));

            TestRequestDispatcher.PrepareNextRequest(response: rofficersXmlResult);
            var response = await command.Execute(message);

            response.Status.Should().Be(CommandStatus.Success);
        }