public async Task TestGameCollectionsByNullParam_OK() { try { var result = await _gamesController.GetGameCollections(null); Assert.IsNotNull(result); Assert.IsInstanceOfType(((ObjectResult)result).Value, typeof(GameCollectionDTOOut)); GameCollectionDTOOut gameCollectionDTOOut = (GameCollectionDTOOut)((ObjectResult)result).Value; Assert.IsFalse(gameCollectionDTOOut.Gamecollections.Count == 0); } catch (Exception ex) { Assert.Fail(); } }
public async Task TestGameCollectionsByAnotherGameCollectionId_OK() { try { var result = await _gamesController.GetGameCollections(2); Assert.IsNotNull(result); Assert.IsInstanceOfType(((ObjectResult)result).Value, typeof(GameCollectionDTOOut)); GameCollectionDTOOut gameCollectionDTOOut = (GameCollectionDTOOut)((ObjectResult)result).Value; Assert.IsFalse(gameCollectionDTOOut.Gamecollections.Count == 0); Assert.AreEqual(gameCollectionDTOOut.Gamecollections.Select(x => x.Games).ToList()[0].Count, 8); } catch (Exception ex) { Assert.Fail(); } }
/// <summary> /// Used for fetching Game colections information based on gamecollectonId or fecth all by passing NUll from Databse. /// </summary> /// <param name="gameCollectionId"></param> /// <returns></returns> public static async Task <GameCollectionDTOOut> GetGameCollections(int?gameCollectionId) { GameCollectionDTOOut gameCollectionDTOOut = new GameCollectionDTOOut(); try { using (POCDB_testContext pOCDB_testContext = new POCDB_testContext()) { var gameCollectionIdParam = new SqlParameter("@gameCollectionId", SqlDbType.Int); gameCollectionIdParam.Value = (object)gameCollectionId ?? DBNull.Value; gameCollectionDTOOut.Gamecollections = await pOCDB_testContext.GetGameCollectionsSP .FromSql("Exec dbo.[GetGameCollections] @gameCollectionId=@gameCollectionId", gameCollectionIdParam) .GroupBy(g => g.GameCollectionId) .Select(x => new GamecollectionView { CollectionId = x.Key, Name = x.Select(z => z.GameCollectionName).FirstOrDefault(), Games = x.GroupBy(g => g.GameId) .Select(a => new Game { GameId = a.Key, Name = a.Select(b => b.GameName).FirstOrDefault(), }).ToList(), SubCollections = x.GroupBy(g => g.SubCollectionId) .Select(a => new GameSubCollection { SubCollectionId = a.Key, Name = a.Select(b => b.SubCollectionName).FirstOrDefault() }).ToList() }).ToListAsync(); return(gameCollectionDTOOut); }; } catch (Exception ex) { return(new GameCollectionDTOOut()); } }