private static void AssertHltbsUserTable(TableGameInfo[] games, bool mobile) { foreach (var game in games) { Assert.IsTrue(game.Included, Invariant($"Expected all games to be included but the following was not: {game.SteamName}")); Assert.AreEqual(0, game.SteamPlaytime, Invariant($"Expected zero playtime for: {game.SteamName}")); Assert.IsTrue(game.MainPlaytime > 0, Invariant($"Expected main playtime to be greater than zero: {game.SteamName}")); Assert.IsTrue(game.ExtrasPlaytime > 0, Invariant($"Expected extras playtime to be greater than zero: {game.SteamName}")); Assert.IsTrue(game.CompletionistPlaytime > 0, Invariant($"Expected completionist playtime to be greater than zero: {game.SteamName}")); Assert.IsTrue(game.MainPlaytime <= game.ExtrasPlaytime, Invariant($"Main playtime exceeds extras playtime for: {game.SteamName}")); Assert.IsTrue(game.ExtrasPlaytime <= game.CompletionistPlaytime, Invariant($"Extras playtime exceeds completionist playtime for: {game.SteamName}")); Assert.AreEqual(!mobile && (game.SteamName == GameConstants.RoninSteamName), game.VerifiedFinite, Invariant($"Expected verified finite for: {game.SteamName}")); Assert.IsFalse(game.VerifiedCorrelation, Invariant($"Unexpected verified correlation game: {game.SteamName}")); } var expectedGames = new[] { new { SteamName = GameConstants.AFistfulOfGunSteamName, HltbName = mobile ? null : GameConstants.AFistfulOfGunHltbName }, new { SteamName = GameConstants.GodsWillBeWatchingSteamName, HltbName = mobile ? null : GameConstants.GodsWillBeWatchingHltbName }, new { SteamName = GameConstants.RoninSteamName, HltbName = mobile ? null : GameConstants.RoninHltbName } }; CollectionAssert.AssertEqualSets(expectedGames, games.Select(g => new { g.SteamName, g.HltbName }), "Unexpected games in table"); }
public void TestTextFilter() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.SignInWithId(driver); Console.WriteLine("Setting filter to include two games..."); var filter = "in"; FilterHelper.SetTextFilter(driver, filter); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 2, Invariant($"Could not verify filter {filter}")); AssertActiveFilterNotifications(driver, true); CollectionAssert.AssertEqualSets(new[] { GameConstants.RoninSteamName, GameConstants.GodsWillBeWatchingSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), Invariant($"Could not verify filter {filter}")); Console.WriteLine("Setting filter to exclude all games..."); filter = Guid.NewGuid().ToString(); FilterHelper.SetTextFilter(driver, filter); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 0, Invariant($"Could not verify filter {filter}")); AssertActiveFilterNotifications(driver, true); Console.WriteLine("Clearing filter..."); FilterHelper.ClearTextFilter(driver); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 3, "Could not verify cleared filter"); AssertActiveFilterNotifications(driver, false); }); }
private static void TestColumnSort <T>(IWebDriver driver, string headerId, Func <TableGameInfo, T> selector, IEnumerable <TableGameInfo> originalGames, bool reverse) { TableGameInfo[] sortedGames = null; driver.FindElement(By.Id(headerId)).Click(); driver.WaitUntil(d => { sortedGames = TableHelper.ParseGameTable(driver); var sortedValues = sortedGames.Select(selector).ToArray(); return((reverse ? sortedValues.OrderBy(n => n).Reverse() : sortedValues.OrderBy(n => n)).SequenceEqual(sortedValues)); }, Invariant($"Could not verify column sort: {headerId}")); CollectionAssert.AssertEqualSets(originalGames, sortedGames, Invariant($"Column sorting by '{headerId}' affected games in table")); }
public void TestAdvancedFilter() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.SignInWithId(driver); Console.WriteLine("Setting advanced filter by release year..."); FilterHelper.SetAdvancedFilter(driver, 2015, 2016); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 2, "Could not verify release year advanced filter"); CollectionAssert.AssertEqualSets(new[] { GameConstants.RoninSteamName, GameConstants.AFistfulOfGunSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), "Could not verify release year advanced filter"); AssertActiveFilterNotifications(driver, true); FilterHelper.ClearAdvancedFilter(driver); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 3, "Could not verify cleared advanced filter"); AssertActiveFilterNotifications(driver, false); Console.WriteLine("Setting advanced filter by Metacritic score..."); FilterHelper.SetAdvancedFilter(driver, 2014, -1, 60, 70); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 1, "Could not verify metacritic advanced filter"); CollectionAssert.AssertEqualSets(new[] { GameConstants.GodsWillBeWatchingSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), "Could not verify metacritic advanced filter"); AssertActiveFilterNotifications(driver, true); Console.WriteLine("Setting advanced filter by genre..."); FilterHelper.SetAdvancedFilter(driver, -1, -1, -1, -1, new [] { GameConstants.ActionGenre }); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 0, "Could not verify metacritic+genre advanced filter"); AssertActiveFilterNotifications(driver, true); Console.WriteLine("Clearing filter (externally)..."); FilterHelper.ClearAdvancedFilterExternally(driver); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 3, "Could not verify externally cleared advanced filter"); AssertActiveFilterNotifications(driver, false); Console.WriteLine("Setting combined filter and advanced filter..."); FilterHelper.SetAdvancedFilter(driver, -1, -1, -1, -1, new[] { GameConstants.ActionGenre }); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 2, "Could not verify genre advanced filter"); FilterHelper.SetTextFilter(driver, "gun"); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 1, "Could not verify combined filter and advanced filter"); CollectionAssert.AssertEqualSets(new[] { GameConstants.AFistfulOfGunSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), "Could not verify combined filter and advanced filter"); }); }