@@ -368,3 +368,182 @@ TEST(PlayerTest, UpdateVictoryPoints_all){
368368}
369369
370370
371+ // INSERT DEV CARD TESTS HERE
372+
373+ TEST (PlayerTest, Monopoly_card_1){
374+ GameBoard board ({" test-player1" , " test-player2" });
375+
376+ Player& tp1 = board.getPlayer (0 );
377+ Player& tp2 = board.getPlayer (1 );
378+
379+ tp1.addMultiple (0 ,0 ,1 ,1 ,1 );
380+
381+ std::unique_ptr<DevelopmentCard> test_MonopolyCard = std::unique_ptr<DevelopmentCard>(new MonopolyCard ());
382+ tp1.buyCard (test_MonopolyCard);
383+
384+
385+ tp1.addMultiple (5 ,5 ,5 ,5 ,5 );
386+ tp2.addMultiple (5 ,5 ,5 ,5 ,5 );
387+
388+ tp1.playMonopoly (2 );
389+
390+ ASSERT_TRUE (validateResourceAmount (5 ,5 ,10 ,5 ,5 ,tp1));
391+ ASSERT_TRUE (validateResourceAmount (5 ,5 ,0 ,5 ,5 ,tp2));
392+
393+ }
394+
395+
396+ TEST (PlayerTest, Monopoly_card_2){
397+ GameBoard board ({" test-player1" , " test-player2" });
398+
399+ Player& tp1 = board.getPlayer (0 );
400+ Player& tp2 = board.getPlayer (1 );
401+
402+ tp1.addMultiple (0 ,0 ,1 ,1 ,1 );
403+
404+ std::unique_ptr<DevelopmentCard> test_MonopolyCard = std::unique_ptr<DevelopmentCard>(new MonopolyCard ());
405+ tp1.buyCard (test_MonopolyCard);
406+
407+ tp1.addMultiple (0 ,0 ,0 ,1 ,1 );
408+ tp2.addMultiple (1 ,1 ,0 ,0 ,0 );
409+
410+ tp1.playMonopoly (2 );
411+
412+
413+ ASSERT_TRUE (validateResourceAmount (0 ,0 ,0 ,1 ,1 ,tp1));
414+ ASSERT_TRUE (validateResourceAmount (1 ,1 ,0 ,0 ,0 ,tp2));
415+
416+ }
417+
418+
419+
420+ TEST (PlayerTest, Monopoly_card_false){
421+ GameBoard board ({" test-player1" , " test-player2" });
422+
423+ Player& tp1 = board.getPlayer (0 );
424+ Player& tp2 = board.getPlayer (1 );
425+
426+ std::unique_ptr<DevelopmentCard> test_MonopolyCard = std::unique_ptr<DevelopmentCard>(new MonopolyCard ());
427+ tp1.buyCard (test_MonopolyCard);
428+
429+ tp1.addMultiple (0 ,0 ,0 ,1 ,1 );
430+ tp2.addMultiple (1 ,1 ,0 ,0 ,0 );
431+
432+ tp1.playMonopoly (0 );
433+
434+ ASSERT_TRUE (validateResourceAmount (0 ,0 ,0 ,1 ,1 ,tp1));
435+ ASSERT_TRUE (validateResourceAmount (1 ,1 ,0 ,0 ,0 ,tp2));
436+
437+ }
438+
439+
440+ TEST (PlayerTest, Monopoly_card_false_2){
441+ GameBoard board ({" test-player1" , " test-player2" });
442+
443+ Player& tp1 = board.getPlayer (0 );
444+ Player& tp2 = board.getPlayer (1 );
445+
446+ tp1.addMultiple (0 ,0 ,0 ,1 ,1 );
447+ tp2.addMultiple (1 ,1 ,0 ,0 ,0 );
448+
449+ tp1.playMonopoly (0 );
450+
451+ ASSERT_TRUE (validateResourceAmount (0 ,0 ,0 ,1 ,1 ,tp1));
452+ ASSERT_TRUE (validateResourceAmount (1 ,1 ,0 ,0 ,0 ,tp2));
453+
454+ }
455+
456+
457+ TEST (PlayerTest, Year_Of_Plenty_card){
458+ GameBoard board ({" test-player1" });
459+
460+ Player& tp1 = board.getPlayer (0 );
461+
462+ tp1.addMultiple (0 ,0 ,1 ,1 ,1 );
463+
464+ std::unique_ptr<DevelopmentCard> test_YearOfPlentyCard = std::unique_ptr<DevelopmentCard>(new YearOfPlentyCard ());
465+ tp1.buyCard (test_YearOfPlentyCard);
466+
467+ tp1.addMultiple (0 ,0 ,0 ,1 ,1 );
468+
469+ tp1.playYearOfPlenty (2 );
470+
471+ ASSERT_TRUE (validateResourceAmount (0 ,0 ,2 ,1 ,1 ,tp1));
472+
473+ }
474+
475+
476+
477+ TEST (PlayerTest, Year_Of_Plenty_card_false){
478+ GameBoard board ({" test-player1" });
479+
480+ Player& tp1 = board.getPlayer (0 );
481+
482+ std::unique_ptr<DevelopmentCard> test_YearOfPlentyCard = std::unique_ptr<DevelopmentCard>(new YearOfPlentyCard ());
483+ tp1.buyCard (test_YearOfPlentyCard);
484+
485+ tp1.addMultiple (0 ,0 ,0 ,1 ,1 );
486+
487+ tp1.playYearOfPlenty (2 );
488+
489+ ASSERT_TRUE (validateResourceAmount (0 ,0 ,0 ,1 ,1 ,tp1));
490+
491+ }
492+
493+
494+ TEST (PlayerTest, Year_Of_Plenty_card_false_2){
495+ GameBoard board ({" test-player1" });
496+
497+ Player& tp1 = board.getPlayer (0 );
498+
499+ tp1.addMultiple (0 ,0 ,0 ,1 ,1 );
500+
501+ tp1.playYearOfPlenty (2 );
502+
503+ ASSERT_TRUE (validateResourceAmount (0 ,0 ,0 ,1 ,1 ,tp1));
504+
505+ }
506+
507+
508+
509+ // INSERT TRADING TESTS HERE
510+
511+ TEST (PlayerTest, Trade_positive){
512+ GameBoard board ({" test-player1" , " test-player2" });
513+
514+ Player& tp1 = board.getPlayer (0 );
515+ Player& tp2 = board.getPlayer (1 );
516+
517+ tp1.addMultiple (5 ,5 ,5 ,5 ,5 );
518+ tp2.addMultiple (5 ,5 ,5 ,5 ,5 );
519+
520+ std::array<int , 5 > offer = {{2 ,2 ,0 ,0 ,0 }};
521+ std::array<int , 5 > demand = {{0 ,0 ,0 ,2 ,2 }};
522+
523+ tp2.acceptOffer (tp1, offer, demand);
524+
525+ ASSERT_TRUE (validateResourceAmount (7 ,7 ,5 ,3 ,3 ,tp1));
526+ ASSERT_TRUE (validateResourceAmount (3 ,3 ,5 ,7 ,7 ,tp2));
527+
528+ }
529+
530+
531+ TEST (PlayerTest, Trade_negative){
532+ GameBoard board ({" test-player1" , " test-player2" });
533+
534+ Player& tp1 = board.getPlayer (0 );
535+ Player& tp2 = board.getPlayer (1 );
536+
537+ tp1.addMultiple (2 ,2 ,2 ,2 ,2 );
538+ tp2.addMultiple (2 ,2 ,2 ,2 ,2 );
539+
540+ std::array<int , 5 > offer = {{5 ,5 ,0 ,0 ,0 }};
541+ std::array<int , 5 > demand = {{0 ,0 ,0 ,5 ,5 }};
542+
543+ tp2.acceptOffer (tp1, offer, demand);
544+
545+ ASSERT_TRUE (validateResourceAmount (2 ,2 ,2 ,2 ,2 ,tp1));
546+ ASSERT_TRUE (validateResourceAmount (2 ,2 ,2 ,2 ,2 ,tp2));
547+
548+ }
549+
0 commit comments