Skip to content

Commit

Permalink
Merge pull request #287 from Zeavee/final-branch
Browse files Browse the repository at this point in the history
Final Branch
  • Loading branch information
Zeavee authored Jun 5, 2020
2 parents d376a9a + 89e8523 commit 31b385e
Show file tree
Hide file tree
Showing 207 changed files with 3,949 additions and 3,775 deletions.
6 changes: 3 additions & 3 deletions app/lint.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="InvalidPackage">
<ignore path="*/io.grpc/grpc-core/*"/>
<issue id="IconXmlAndPng">
<ignore path="src/main/res/drawable-hdpi/ic_action_mail.png" />
</issue>
</lint>
</lint>
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import java.util.HashMap;

import ch.epfl.sdp.database.utils.CustomResult;
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
import ch.epfl.sdp.utils.CustomResult;
import ch.epfl.sdp.utils.OnValueReadyCallback;


public class MockAuthenticationAPI implements AuthenticationAPI {
private HashMap<String, String> registeredUsers;
private final HashMap<String, String> registeredUsers;
private String currentUserEmail;

public MockAuthenticationAPI(HashMap<String, String> registeredUsers, String currentUserEmail) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

import ch.epfl.sdp.database.firebase.api.ClientDatabaseAPI;
import ch.epfl.sdp.database.firebase.entityForFirebase.ItemsForFirebase;
import ch.epfl.sdp.database.utils.CustomResult;
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
import ch.epfl.sdp.utils.CustomResult;
import ch.epfl.sdp.utils.OnValueReadyCallback;

public class ClientMockDatabaseAPI implements ClientDatabaseAPI {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
import ch.epfl.sdp.database.firebase.api.CommonDatabaseAPI;
import ch.epfl.sdp.database.firebase.entityForFirebase.PlayerForFirebase;
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
import ch.epfl.sdp.database.utils.CustomResult;
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
import ch.epfl.sdp.entity.Player;
import ch.epfl.sdp.entity.PlayerManager;
import ch.epfl.sdp.utils.CustomResult;
import ch.epfl.sdp.utils.OnValueReadyCallback;
import ch.epfl.sdp.entities.player.Player;
import ch.epfl.sdp.entities.player.PlayerManager;

public class CommonMockDatabaseAPI implements CommonDatabaseAPI {
private HashMap<String, UserForFirebase> userData;
private List<UserForFirebase> userForFirebaseList;
private final HashMap<String, UserForFirebase> userData;
private final List<UserForFirebase> userForFirebaseList;

public CommonMockDatabaseAPI(HashMap<String, UserForFirebase> userData, List<UserForFirebase> userForFirebaseList) {
this.userData = userData;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import ch.epfl.sdp.database.firebase.entityForFirebase.ItemsForFirebase;
import ch.epfl.sdp.database.firebase.entityForFirebase.PlayerForFirebase;
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
import ch.epfl.sdp.database.utils.CustomResult;
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
import ch.epfl.sdp.geometry.Area;
import ch.epfl.sdp.utils.CustomResult;
import ch.epfl.sdp.utils.OnValueReadyCallback;
import ch.epfl.sdp.geometry.area.Area;

public class ServerMockDatabaseAPI implements ServerDatabaseAPI {
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ch.epfl.sdp.xgameover;
package ch.epfl.sdp.game;

import android.content.Intent;

Expand All @@ -20,15 +20,14 @@
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
import ch.epfl.sdp.database.firebase.ServerMockDatabaseAPI;
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
import ch.epfl.sdp.dependencies.AppContainer;
import ch.epfl.sdp.dependencies.MyApplication;
import ch.epfl.sdp.entity.Player;
import ch.epfl.sdp.entity.PlayerManager;
import ch.epfl.sdp.utils.AppContainer;
import ch.epfl.sdp.utils.MyApplication;
import ch.epfl.sdp.entities.player.Player;
import ch.epfl.sdp.entities.player.PlayerManager;
import ch.epfl.sdp.game.Game;
import ch.epfl.sdp.game.Server;
import ch.epfl.sdp.geometry.GeoPoint;
import ch.epfl.sdp.map.MapsActivity;
import ch.epfl.sdp.market.Market;
import ch.epfl.sdp.game.game_architecture.Server;
import ch.epfl.sdp.map.location.GeoPoint;
import ch.epfl.sdp.ui.map.MapsActivity;
import ch.epfl.sdp.utils.MockMap;

import static androidx.test.espresso.Espresso.onView;
Expand All @@ -41,18 +40,17 @@
@LargeTest
@RunWith(AndroidJUnit4.class)
public class GameOverTest {
private Player placeholder;
@Rule
public final ActivityTestRule<MapsActivity> mActivityTestRule = new ActivityTestRule<MapsActivity>(MapsActivity.class) {

@Override
public void beforeActivityLaunched() {
// important to have player away from market otherwise it is the market that will open
Player amro = new Player(6.14, 47.22, 100, "amroa", "amro@gmail.com", false);
amro.setHealthPoints(100);
amro.status.setHealthPoints(100, amro);
PlayerManager.getInstance().setCurrentUser(amro);

placeholder = new Player("placeholder", "placeholder@placeholder.com");
Player placeholder = new Player("placeholder", "placeholder@placeholder.com");
PlayerManager.getInstance().addPlayer(placeholder);

MockMap mockMap = new MockMap();
Expand All @@ -71,7 +69,7 @@ public void beforeActivityLaunched() {
appContainer.commonDatabaseAPI = new CommonMockDatabaseAPI(userData, userForFirebaseList);
appContainer.serverDatabaseAPI = new ServerMockDatabaseAPI();

Game.getInstance().startGameController = new Server(appContainer.serverDatabaseAPI, appContainer.commonDatabaseAPI, () -> {mActivityTestRule.getActivity().endGame();});
Game.getInstance().startGameController = new Server(appContainer.serverDatabaseAPI, appContainer.commonDatabaseAPI, () -> mActivityTestRule.getActivity().endGame());
}

// start the game engine MANUALLY
Expand All @@ -92,17 +90,18 @@ protected Intent getActivityIntent() {
// check "Game Ovr" is displayed
@Test
public void serverLosesIfDead() {
checkIfTextIsDisplayedAfterGameOver(PlayerManager.getInstance().getCurrentUser(), "Game 0vr");
checkIfTextIsDisplayedAfterGameOver(PlayerManager.getInstance().getCurrentUser());
}

private void checkIfTextIsDisplayedAfterGameOver(Player player, String text) {
player.setHealthPoints(0);

private void checkIfTextIsDisplayedAfterGameOver(Player player) {
player.status.setHealthPoints(0, player);
// wait a moment for the splash screen to be intended
while (!mActivityTestRule.getActivity().flagGameOver) {
((Server) Game.getInstance().startGameController).update();
};
}
ViewInteraction textView = onView(withId(R.id.gameOverText));
textView.check(matches(withText(text)));
textView.check(matches(withText("Game 0vr")));
onView(withId(R.id.backFromGameOver)).perform(click());
onView(withId(R.id.solo)).check(matches(isDisplayed()));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ch.epfl.sdp;
package ch.epfl.sdp.game;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;

Expand All @@ -12,11 +13,12 @@
import java.util.HashMap;
import java.util.List;

import ch.epfl.sdp.R;
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
import ch.epfl.sdp.dependencies.AppContainer;
import ch.epfl.sdp.dependencies.MyApplication;
import ch.epfl.sdp.leaderBoard.GeneralLeaderBoardActivity;
import ch.epfl.sdp.utils.AppContainer;
import ch.epfl.sdp.utils.MyApplication;
import ch.epfl.sdp.ui.leader_board.GeneralLeaderBoardActivity;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
Expand Down Expand Up @@ -45,7 +47,7 @@ protected void beforeActivityLaunched() {

@Test
public void onCreateTest() {
onView(withId(R.id.recycler_view)).perform();
onView(ViewMatchers.withId(R.id.recycler_view)).perform();
onView(withId(R.id.iv_champion1)).check(matches(isDisplayed()));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package ch.epfl.sdp;
package ch.epfl.sdp.game;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.espresso.matcher.ViewMatchers;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
Expand All @@ -13,14 +13,16 @@
import java.util.ArrayList;
import java.util.HashMap;

import ch.epfl.sdp.R;
import ch.epfl.sdp.database.authentication.MockAuthenticationAPI;
import ch.epfl.sdp.database.firebase.ClientMockDatabaseAPI;
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
import ch.epfl.sdp.dependencies.AppContainer;
import ch.epfl.sdp.dependencies.MyApplication;
import ch.epfl.sdp.entity.Player;
import ch.epfl.sdp.entity.PlayerManager;
import ch.epfl.sdp.utils.AppContainer;
import ch.epfl.sdp.utils.MyApplication;
import ch.epfl.sdp.entities.player.Player;
import ch.epfl.sdp.entities.player.PlayerManager;
import ch.epfl.sdp.game.Game;
import ch.epfl.sdp.ui.game.MainMenuActivity;
import ch.epfl.sdp.utils.MockMap;

import static androidx.test.espresso.Espresso.onView;
Expand Down Expand Up @@ -53,13 +55,9 @@ public void setup() {
PlayerManager.getInstance().setCurrentUser(new Player("test", "test@gmail.com"));
}

@After
public void teardown() {
}

@Test
public void rulesOpens() {
onView(withId(R.id.rulesButton)).perform(click());
onView(ViewMatchers.withId(R.id.rulesButton)).perform(click());
onView(withId(R.id.titleRules)).check(matches(isDisplayed()));
}

Expand All @@ -71,18 +69,18 @@ public void friendsListOpens() {

@Test
public void mapsOpens() {
testButtonWorks(R.id.multi, R.id.map);
testButtonWorks(R.id.multi);
}

@Test
public void soloOpens() {
testButtonWorks(R.id.solo, R.id.map);
testButtonWorks(R.id.solo);
}

private void testButtonWorks(int button, int view) {
private void testButtonWorks(int button) {
onView(withId(button)).perform(click());
permissionsIfNeeded("ACCESS_FINE_LOCATION", GRANT_BUTTON_INDEX);
onView(withId(view)).check(matches(isDisplayed()));
onView(withId(R.id.map)).check(matches(isDisplayed()));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ch.epfl.sdp.market_espresso;
package ch.epfl.sdp.game;


import android.content.Intent;
Expand All @@ -21,13 +21,13 @@
import ch.epfl.sdp.R;
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
import ch.epfl.sdp.database.firebase.ServerMockDatabaseAPI;
import ch.epfl.sdp.dependencies.MyApplication;
import ch.epfl.sdp.entity.Player;
import ch.epfl.sdp.entity.PlayerManager;
import ch.epfl.sdp.utils.MyApplication;
import ch.epfl.sdp.entities.player.Player;
import ch.epfl.sdp.entities.player.PlayerManager;
import ch.epfl.sdp.game.Game;
import ch.epfl.sdp.geometry.GeoPoint;
import ch.epfl.sdp.map.MapsActivity;
import ch.epfl.sdp.market.Market;
import ch.epfl.sdp.map.location.GeoPoint;
import ch.epfl.sdp.ui.map.MapsActivity;
import ch.epfl.sdp.items.money.Market;
import ch.epfl.sdp.utils.JunkCleaner;
import ch.epfl.sdp.utils.MockMap;

Expand All @@ -39,15 +39,15 @@
import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static ch.epfl.sdp.SocialTests.ChildParentMatcher.childAtPosition;
import static ch.epfl.sdp.utils.ChildParentMatcher.childAtPosition;
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.core.StringContains.containsString;

@LargeTest
@RunWith(AndroidJUnit4.class)
public class NewMarketActivityTest {
public class MarketActivityTest {

@Rule
public ActivityTestRule<MapsActivity> mActivityTestRule = new ActivityTestRule<MapsActivity>(MapsActivity.class) {
Expand All @@ -56,9 +56,9 @@ public class NewMarketActivityTest {
public void beforeActivityLaunched() {
JunkCleaner.clearAll();
Player amro = new Player(6.14, 46.22, 100, "amroa", "amro@gmail.com", false);
amro.setHealthPoints(100);
amro.removeMoney(amro.getMoney());
amro.addMoney(100000);
amro.status.setHealthPoints(100, amro);
amro.wallet.removeMoney(amro.wallet.getMoney(amro), amro);
amro.wallet.addMoney(100000, amro);
PlayerManager.getInstance().setCurrentUser(amro);
MockMap mockMap = new MockMap();
Game.getInstance().setMapApi(mockMap);
Expand Down Expand Up @@ -168,7 +168,7 @@ public void step8() {
}

@Test
public void newMarketActivityTest() throws InterruptedException {
public void testMarketActivity() throws InterruptedException {
// wait a bit for MarketActivity to be intended
Thread.sleep(4000);
step1();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
package ch.epfl.sdp.logic;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import androidx.test.espresso.intent.rule.IntentsTestRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;
import ch.epfl.sdp.R;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.intent.Intents.intended;
import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
import static androidx.test.espresso.matcher.ViewMatchers.withId;

@RunWith(AndroidJUnit4.class)
public class RulesActivityPage1Test {
@Rule
public ActivityTestRule<RulesActivityPage1> mActivityRule = new IntentsTestRule<>(RulesActivityPage1.class);

@Test
public void btnPage2Click_OpensRulesActivityPage2() {
onView(withId(R.id.btnPage2)).perform(click());
intended(hasComponent(RulesActivityPage2.class.getName()));
}
}
package ch.epfl.sdp.game;

import androidx.test.espresso.intent.rule.IntentsTestRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import ch.epfl.sdp.R;
import ch.epfl.sdp.ui.game.RulesActivityPage1;
import ch.epfl.sdp.ui.game.RulesActivityPage2;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.intent.Intents.intended;
import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
import static androidx.test.espresso.matcher.ViewMatchers.withId;

@RunWith(AndroidJUnit4.class)
public class RulesActivityPage1Test {
@Rule
public ActivityTestRule<RulesActivityPage1> mActivityRule = new IntentsTestRule<>(RulesActivityPage1.class);

@Test
public void btnPage2Click_OpensRulesActivityPage2() {
onView(withId(R.id.btnPage2)).perform(click());
intended(hasComponent(RulesActivityPage2.class.getName()));
}
}
Loading

0 comments on commit 31b385e

Please sign in to comment.