Skip to content

Commit 31b385e

Browse files
authored
Merge pull request #287 from Zeavee/final-branch
Final Branch
2 parents d376a9a + 89e8523 commit 31b385e

207 files changed

Lines changed: 3949 additions & 3775 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/lint.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<lint>
3-
<issue id="InvalidPackage">
4-
<ignore path="*/io.grpc/grpc-core/*"/>
3+
<issue id="IconXmlAndPng">
4+
<ignore path="src/main/res/drawable-hdpi/ic_action_mail.png" />
55
</issue>
6-
</lint>
6+
</lint>

app/src/androidTest/java/ch/epfl/sdp/database/authentication/MockAuthenticationAPI.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import java.util.HashMap;
44

5-
import ch.epfl.sdp.database.utils.CustomResult;
6-
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
5+
import ch.epfl.sdp.utils.CustomResult;
6+
import ch.epfl.sdp.utils.OnValueReadyCallback;
77

88

99
public class MockAuthenticationAPI implements AuthenticationAPI {
10-
private HashMap<String, String> registeredUsers;
10+
private final HashMap<String, String> registeredUsers;
1111
private String currentUserEmail;
1212

1313
public MockAuthenticationAPI(HashMap<String, String> registeredUsers, String currentUserEmail) {

app/src/androidTest/java/ch/epfl/sdp/database/firebase/ClientMockDatabaseAPI.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import ch.epfl.sdp.database.firebase.api.ClientDatabaseAPI;
77
import ch.epfl.sdp.database.firebase.entityForFirebase.ItemsForFirebase;
8-
import ch.epfl.sdp.database.utils.CustomResult;
9-
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
8+
import ch.epfl.sdp.utils.CustomResult;
9+
import ch.epfl.sdp.utils.OnValueReadyCallback;
1010

1111
public class ClientMockDatabaseAPI implements ClientDatabaseAPI {
1212

app/src/androidTest/java/ch/epfl/sdp/database/firebase/CommonMockDatabaseAPI.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
import ch.epfl.sdp.database.firebase.api.CommonDatabaseAPI;
88
import ch.epfl.sdp.database.firebase.entityForFirebase.PlayerForFirebase;
99
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
10-
import ch.epfl.sdp.database.utils.CustomResult;
11-
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
12-
import ch.epfl.sdp.entity.Player;
13-
import ch.epfl.sdp.entity.PlayerManager;
10+
import ch.epfl.sdp.utils.CustomResult;
11+
import ch.epfl.sdp.utils.OnValueReadyCallback;
12+
import ch.epfl.sdp.entities.player.Player;
13+
import ch.epfl.sdp.entities.player.PlayerManager;
1414

1515
public class CommonMockDatabaseAPI implements CommonDatabaseAPI {
16-
private HashMap<String, UserForFirebase> userData;
17-
private List<UserForFirebase> userForFirebaseList;
16+
private final HashMap<String, UserForFirebase> userData;
17+
private final List<UserForFirebase> userForFirebaseList;
1818

1919
public CommonMockDatabaseAPI(HashMap<String, UserForFirebase> userData, List<UserForFirebase> userForFirebaseList) {
2020
this.userData = userData;

app/src/androidTest/java/ch/epfl/sdp/database/firebase/ServerMockDatabaseAPI.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import ch.epfl.sdp.database.firebase.entityForFirebase.ItemsForFirebase;
1010
import ch.epfl.sdp.database.firebase.entityForFirebase.PlayerForFirebase;
1111
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
12-
import ch.epfl.sdp.database.utils.CustomResult;
13-
import ch.epfl.sdp.database.utils.OnValueReadyCallback;
14-
import ch.epfl.sdp.geometry.Area;
12+
import ch.epfl.sdp.utils.CustomResult;
13+
import ch.epfl.sdp.utils.OnValueReadyCallback;
14+
import ch.epfl.sdp.geometry.area.Area;
1515

1616
public class ServerMockDatabaseAPI implements ServerDatabaseAPI {
1717
@Override

app/src/androidTest/java/ch/epfl/sdp/xgameover/GameOverTest.java renamed to app/src/androidTest/java/ch/epfl/sdp/game/GameOverTest.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ch.epfl.sdp.xgameover;
1+
package ch.epfl.sdp.game;
22

33
import android.content.Intent;
44

@@ -20,15 +20,14 @@
2020
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
2121
import ch.epfl.sdp.database.firebase.ServerMockDatabaseAPI;
2222
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
23-
import ch.epfl.sdp.dependencies.AppContainer;
24-
import ch.epfl.sdp.dependencies.MyApplication;
25-
import ch.epfl.sdp.entity.Player;
26-
import ch.epfl.sdp.entity.PlayerManager;
23+
import ch.epfl.sdp.utils.AppContainer;
24+
import ch.epfl.sdp.utils.MyApplication;
25+
import ch.epfl.sdp.entities.player.Player;
26+
import ch.epfl.sdp.entities.player.PlayerManager;
2727
import ch.epfl.sdp.game.Game;
28-
import ch.epfl.sdp.game.Server;
29-
import ch.epfl.sdp.geometry.GeoPoint;
30-
import ch.epfl.sdp.map.MapsActivity;
31-
import ch.epfl.sdp.market.Market;
28+
import ch.epfl.sdp.game.game_architecture.Server;
29+
import ch.epfl.sdp.map.location.GeoPoint;
30+
import ch.epfl.sdp.ui.map.MapsActivity;
3231
import ch.epfl.sdp.utils.MockMap;
3332

3433
import static androidx.test.espresso.Espresso.onView;
@@ -41,18 +40,17 @@
4140
@LargeTest
4241
@RunWith(AndroidJUnit4.class)
4342
public class GameOverTest {
44-
private Player placeholder;
4543
@Rule
4644
public final ActivityTestRule<MapsActivity> mActivityTestRule = new ActivityTestRule<MapsActivity>(MapsActivity.class) {
4745

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

55-
placeholder = new Player("placeholder", "placeholder@placeholder.com");
53+
Player placeholder = new Player("placeholder", "placeholder@placeholder.com");
5654
PlayerManager.getInstance().addPlayer(placeholder);
5755

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

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

7775
// start the game engine MANUALLY
@@ -92,17 +90,18 @@ protected Intent getActivityIntent() {
9290
// check "Game Ovr" is displayed
9391
@Test
9492
public void serverLosesIfDead() {
95-
checkIfTextIsDisplayedAfterGameOver(PlayerManager.getInstance().getCurrentUser(), "Game 0vr");
93+
checkIfTextIsDisplayedAfterGameOver(PlayerManager.getInstance().getCurrentUser());
9694
}
9795

98-
private void checkIfTextIsDisplayedAfterGameOver(Player player, String text) {
99-
player.setHealthPoints(0);
96+
97+
private void checkIfTextIsDisplayedAfterGameOver(Player player) {
98+
player.status.setHealthPoints(0, player);
10099
// wait a moment for the splash screen to be intended
101100
while (!mActivityTestRule.getActivity().flagGameOver) {
102101
((Server) Game.getInstance().startGameController).update();
103-
};
102+
}
104103
ViewInteraction textView = onView(withId(R.id.gameOverText));
105-
textView.check(matches(withText(text)));
104+
textView.check(matches(withText("Game 0vr")));
106105
onView(withId(R.id.backFromGameOver)).perform(click());
107106
onView(withId(R.id.solo)).check(matches(isDisplayed()));
108107
}

app/src/androidTest/java/ch/epfl/sdp/GeneralLeaderBoardActivityTest.java renamed to app/src/androidTest/java/ch/epfl/sdp/game/GeneralLeaderBoardActivityTest.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package ch.epfl.sdp;
1+
package ch.epfl.sdp.game;
22

33
import androidx.test.core.app.ApplicationProvider;
4+
import androidx.test.espresso.matcher.ViewMatchers;
45
import androidx.test.ext.junit.runners.AndroidJUnit4;
56
import androidx.test.rule.ActivityTestRule;
67

@@ -12,11 +13,12 @@
1213
import java.util.HashMap;
1314
import java.util.List;
1415

16+
import ch.epfl.sdp.R;
1517
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
1618
import ch.epfl.sdp.database.firebase.entityForFirebase.UserForFirebase;
17-
import ch.epfl.sdp.dependencies.AppContainer;
18-
import ch.epfl.sdp.dependencies.MyApplication;
19-
import ch.epfl.sdp.leaderBoard.GeneralLeaderBoardActivity;
19+
import ch.epfl.sdp.utils.AppContainer;
20+
import ch.epfl.sdp.utils.MyApplication;
21+
import ch.epfl.sdp.ui.leader_board.GeneralLeaderBoardActivity;
2022

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

4648
@Test
4749
public void onCreateTest() {
48-
onView(withId(R.id.recycler_view)).perform();
50+
onView(ViewMatchers.withId(R.id.recycler_view)).perform();
4951
onView(withId(R.id.iv_champion1)).check(matches(isDisplayed()));
5052
}
5153
}

app/src/androidTest/java/ch/epfl/sdp/MainMenuActivityTest.java renamed to app/src/androidTest/java/ch/epfl/sdp/game/MainMenuActivityTest.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package ch.epfl.sdp;
1+
package ch.epfl.sdp.game;
22

33
import androidx.test.core.app.ApplicationProvider;
4+
import androidx.test.espresso.matcher.ViewMatchers;
45
import androidx.test.ext.junit.runners.AndroidJUnit4;
56
import androidx.test.rule.ActivityTestRule;
67

7-
import org.junit.After;
88
import org.junit.Before;
99
import org.junit.Rule;
1010
import org.junit.Test;
@@ -13,14 +13,16 @@
1313
import java.util.ArrayList;
1414
import java.util.HashMap;
1515

16+
import ch.epfl.sdp.R;
1617
import ch.epfl.sdp.database.authentication.MockAuthenticationAPI;
1718
import ch.epfl.sdp.database.firebase.ClientMockDatabaseAPI;
1819
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
19-
import ch.epfl.sdp.dependencies.AppContainer;
20-
import ch.epfl.sdp.dependencies.MyApplication;
21-
import ch.epfl.sdp.entity.Player;
22-
import ch.epfl.sdp.entity.PlayerManager;
20+
import ch.epfl.sdp.utils.AppContainer;
21+
import ch.epfl.sdp.utils.MyApplication;
22+
import ch.epfl.sdp.entities.player.Player;
23+
import ch.epfl.sdp.entities.player.PlayerManager;
2324
import ch.epfl.sdp.game.Game;
25+
import ch.epfl.sdp.ui.game.MainMenuActivity;
2426
import ch.epfl.sdp.utils.MockMap;
2527

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

56-
@After
57-
public void teardown() {
58-
}
59-
6058
@Test
6159
public void rulesOpens() {
62-
onView(withId(R.id.rulesButton)).perform(click());
60+
onView(ViewMatchers.withId(R.id.rulesButton)).perform(click());
6361
onView(withId(R.id.titleRules)).check(matches(isDisplayed()));
6462
}
6563

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

7270
@Test
7371
public void mapsOpens() {
74-
testButtonWorks(R.id.multi, R.id.map);
72+
testButtonWorks(R.id.multi);
7573
}
7674

7775
@Test
7876
public void soloOpens() {
79-
testButtonWorks(R.id.solo, R.id.map);
77+
testButtonWorks(R.id.solo);
8078
}
8179

82-
private void testButtonWorks(int button, int view) {
80+
private void testButtonWorks(int button) {
8381
onView(withId(button)).perform(click());
8482
permissionsIfNeeded("ACCESS_FINE_LOCATION", GRANT_BUTTON_INDEX);
85-
onView(withId(view)).check(matches(isDisplayed()));
83+
onView(withId(R.id.map)).check(matches(isDisplayed()));
8684
}
8785

8886
@Test

app/src/androidTest/java/ch/epfl/sdp/market_espresso/NewMarketActivityTest.java renamed to app/src/androidTest/java/ch/epfl/sdp/game/MarketActivityTest.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ch.epfl.sdp.market_espresso;
1+
package ch.epfl.sdp.game;
22

33

44
import android.content.Intent;
@@ -21,13 +21,13 @@
2121
import ch.epfl.sdp.R;
2222
import ch.epfl.sdp.database.firebase.CommonMockDatabaseAPI;
2323
import ch.epfl.sdp.database.firebase.ServerMockDatabaseAPI;
24-
import ch.epfl.sdp.dependencies.MyApplication;
25-
import ch.epfl.sdp.entity.Player;
26-
import ch.epfl.sdp.entity.PlayerManager;
24+
import ch.epfl.sdp.utils.MyApplication;
25+
import ch.epfl.sdp.entities.player.Player;
26+
import ch.epfl.sdp.entities.player.PlayerManager;
2727
import ch.epfl.sdp.game.Game;
28-
import ch.epfl.sdp.geometry.GeoPoint;
29-
import ch.epfl.sdp.map.MapsActivity;
30-
import ch.epfl.sdp.market.Market;
28+
import ch.epfl.sdp.map.location.GeoPoint;
29+
import ch.epfl.sdp.ui.map.MapsActivity;
30+
import ch.epfl.sdp.items.money.Market;
3131
import ch.epfl.sdp.utils.JunkCleaner;
3232
import ch.epfl.sdp.utils.MockMap;
3333

@@ -39,15 +39,15 @@
3939
import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
4040
import static androidx.test.espresso.matcher.ViewMatchers.withId;
4141
import static androidx.test.espresso.matcher.ViewMatchers.withText;
42-
import static ch.epfl.sdp.SocialTests.ChildParentMatcher.childAtPosition;
42+
import static ch.epfl.sdp.utils.ChildParentMatcher.childAtPosition;
4343
import static org.hamcrest.Matchers.allOf;
4444
import static org.hamcrest.Matchers.is;
4545
import static org.hamcrest.Matchers.not;
4646
import static org.hamcrest.core.StringContains.containsString;
4747

4848
@LargeTest
4949
@RunWith(AndroidJUnit4.class)
50-
public class NewMarketActivityTest {
50+
public class MarketActivityTest {
5151

5252
@Rule
5353
public ActivityTestRule<MapsActivity> mActivityTestRule = new ActivityTestRule<MapsActivity>(MapsActivity.class) {
@@ -56,9 +56,9 @@ public class NewMarketActivityTest {
5656
public void beforeActivityLaunched() {
5757
JunkCleaner.clearAll();
5858
Player amro = new Player(6.14, 46.22, 100, "amroa", "amro@gmail.com", false);
59-
amro.setHealthPoints(100);
60-
amro.removeMoney(amro.getMoney());
61-
amro.addMoney(100000);
59+
amro.status.setHealthPoints(100, amro);
60+
amro.wallet.removeMoney(amro.wallet.getMoney(amro), amro);
61+
amro.wallet.addMoney(100000, amro);
6262
PlayerManager.getInstance().setCurrentUser(amro);
6363
MockMap mockMap = new MockMap();
6464
Game.getInstance().setMapApi(mockMap);
@@ -168,7 +168,7 @@ public void step8() {
168168
}
169169

170170
@Test
171-
public void newMarketActivityTest() throws InterruptedException {
171+
public void testMarketActivity() throws InterruptedException {
172172
// wait a bit for MarketActivity to be intended
173173
Thread.sleep(4000);
174174
step1();

app/src/androidTest/java/ch/epfl/sdp/logic/RulesActivityPage1Test.java renamed to app/src/androidTest/java/ch/epfl/sdp/game/RulesActivityPage1Test.java

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
1-
package ch.epfl.sdp.logic;
2-
3-
import org.junit.Rule;
4-
import org.junit.Test;
5-
import org.junit.runner.RunWith;
6-
7-
import androidx.test.espresso.intent.rule.IntentsTestRule;
8-
import androidx.test.ext.junit.runners.AndroidJUnit4;
9-
import androidx.test.rule.ActivityTestRule;
10-
import ch.epfl.sdp.R;
11-
12-
import static androidx.test.espresso.Espresso.onView;
13-
import static androidx.test.espresso.action.ViewActions.click;
14-
import static androidx.test.espresso.intent.Intents.intended;
15-
import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
16-
import static androidx.test.espresso.matcher.ViewMatchers.withId;
17-
18-
@RunWith(AndroidJUnit4.class)
19-
public class RulesActivityPage1Test {
20-
@Rule
21-
public ActivityTestRule<RulesActivityPage1> mActivityRule = new IntentsTestRule<>(RulesActivityPage1.class);
22-
23-
@Test
24-
public void btnPage2Click_OpensRulesActivityPage2() {
25-
onView(withId(R.id.btnPage2)).perform(click());
26-
intended(hasComponent(RulesActivityPage2.class.getName()));
27-
}
28-
}
1+
package ch.epfl.sdp.game;
2+
3+
import androidx.test.espresso.intent.rule.IntentsTestRule;
4+
import androidx.test.ext.junit.runners.AndroidJUnit4;
5+
import androidx.test.rule.ActivityTestRule;
6+
7+
import org.junit.Rule;
8+
import org.junit.Test;
9+
import org.junit.runner.RunWith;
10+
11+
import ch.epfl.sdp.R;
12+
import ch.epfl.sdp.ui.game.RulesActivityPage1;
13+
import ch.epfl.sdp.ui.game.RulesActivityPage2;
14+
15+
import static androidx.test.espresso.Espresso.onView;
16+
import static androidx.test.espresso.action.ViewActions.click;
17+
import static androidx.test.espresso.intent.Intents.intended;
18+
import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
19+
import static androidx.test.espresso.matcher.ViewMatchers.withId;
20+
21+
@RunWith(AndroidJUnit4.class)
22+
public class RulesActivityPage1Test {
23+
@Rule
24+
public ActivityTestRule<RulesActivityPage1> mActivityRule = new IntentsTestRule<>(RulesActivityPage1.class);
25+
26+
@Test
27+
public void btnPage2Click_OpensRulesActivityPage2() {
28+
onView(withId(R.id.btnPage2)).perform(click());
29+
intended(hasComponent(RulesActivityPage2.class.getName()));
30+
}
31+
}

0 commit comments

Comments
 (0)