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)"); }
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"); }
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); }