-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #40 from jbreitenthaler/feature/MULI-15
Approved and Merged into Development
- Loading branch information
Showing
31 changed files
with
604 additions
and
116 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 23 additions & 6 deletions
29
...hakTracker/app/src/androidTest/java/com/example/mulatschaktracker/BottomNavigationTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
121 changes: 121 additions & 0 deletions
121
MulatschakTracker/app/src/androidTest/java/com/example/mulatschaktracker/GameFragmentTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
package com.example.mulatschaktracker | ||
|
||
import android.content.Context | ||
import android.view.View | ||
import android.widget.TextView | ||
import androidx.appcompat.app.AppCompatActivity | ||
import androidx.recyclerview.widget.RecyclerView | ||
import androidx.test.core.app.ActivityScenario | ||
import androidx.test.core.app.ApplicationProvider | ||
import androidx.test.espresso.* | ||
import androidx.test.espresso.Espresso.onView | ||
import androidx.test.espresso.Espresso.pressBack | ||
import androidx.test.espresso.action.ViewActions.* | ||
import androidx.test.espresso.assertion.ViewAssertions | ||
import androidx.test.espresso.assertion.ViewAssertions.matches | ||
import androidx.test.espresso.contrib.RecyclerViewActions | ||
import androidx.test.espresso.matcher.ViewMatchers.* | ||
import androidx.test.ext.junit.rules.ActivityScenarioRule | ||
import androidx.test.ext.junit.runners.AndroidJUnit4 | ||
import junit.framework.TestCase | ||
import org.hamcrest.Matcher | ||
|
||
|
||
import org.hamcrest.core.StringStartsWith | ||
import org.junit.After | ||
|
||
|
||
import org.junit.Test | ||
import org.junit.runner.RunWith | ||
|
||
import org.junit.Assert.* | ||
import org.junit.Before | ||
import org.junit.Rule | ||
|
||
@RunWith(AndroidJUnit4::class) | ||
class GameFragmentTest:TestCase() { | ||
lateinit var userRepo : UserRepository | ||
lateinit var gameRepo : GameRepository | ||
lateinit var scenario : ActivityScenario<MainActivity> | ||
val userName = "NewUser" | ||
val playerName = "PlayerName" | ||
//@get:Rule | ||
//var activityRule: ActivityScenarioRule<MainActivity> | ||
// = ActivityScenarioRule(MainActivity::class.java) | ||
|
||
@Before | ||
public override fun setUp(){ | ||
super.setUp() | ||
val appContext: Context = ApplicationProvider.getApplicationContext() | ||
|
||
userRepo = UserRepository(appContext) | ||
userRepo.resetDatabase() | ||
|
||
val userID = userRepo.createUser(UserObject(userName)) | ||
gameRepo = GameRepository(appContext) | ||
gameRepo.createGame(GameObject(playerName,playerName,playerName,playerName),userID) | ||
|
||
val preferences = appContext.getSharedPreferences(PREFERENCENAME, AppCompatActivity.MODE_PRIVATE) | ||
preferences.edit().putString(LASTUSER, userName).commit() | ||
scenario = ActivityScenario.launch(MainActivity::class.java) | ||
|
||
} | ||
|
||
@After | ||
public override fun tearDown() { | ||
super.tearDown() | ||
scenario.close() | ||
} | ||
|
||
@Test | ||
fun newGameIsPresentInGameFragment(){ | ||
onView(withId(R.id.game_textview)).check(matches(isDisplayed())) | ||
} | ||
|
||
@Test | ||
fun correctGameIdDisplayedInGameFragment(){ | ||
assertEquals(getText(onView(withId(R.id.game_textview))),"Game 1") | ||
} | ||
|
||
@Test | ||
fun correctPlayerNamesAreDisplayedInGameFragment(){ | ||
assertEquals(getText(onView(withId(R.id.game_textview_players))), | ||
"PlayerName, PlayerName, PlayerName, PlayerName" | ||
) | ||
} | ||
|
||
@Test | ||
fun clickOnGameOpensGameActivity(){ | ||
onView(withId(R.id.gamesRecyclerView)) | ||
.perform(RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(0, click())) | ||
assertEquals(playerName, getText(onView(withId(R.id.textViewPlayer1)))) | ||
assertEquals(playerName, getText(onView(withId(R.id.textViewPlayer2)))) | ||
assertEquals(playerName, getText(onView(withId(R.id.textViewPlayer3)))) | ||
assertEquals(playerName, getText(onView(withId(R.id.textViewPlayer4)))) | ||
} | ||
|
||
//helper function for comparing 2 strings from textboxes | ||
fun getText(matcher: ViewInteraction): String { | ||
var text = String() | ||
matcher.perform(object : ViewAction { | ||
override fun getConstraints(): Matcher<View> { | ||
return isAssignableFrom(TextView::class.java) | ||
} | ||
|
||
override fun getDescription(): String { | ||
return "Text of the view" | ||
} | ||
|
||
override fun perform(uiController: UiController, view: View) { | ||
val tv = view as TextView | ||
text = tv.text.toString() | ||
} | ||
}) | ||
|
||
return text | ||
} | ||
|
||
|
||
|
||
|
||
} |
115 changes: 115 additions & 0 deletions
115
...schakTracker/app/src/androidTest/java/com/example/mulatschaktracker/GameRepositoryTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
package com.example.mulatschaktracker | ||
|
||
import android.content.Context | ||
import android.view.View | ||
import android.widget.TextView | ||
import androidx.test.core.app.ApplicationProvider | ||
import androidx.test.espresso.* | ||
import androidx.test.espresso.Espresso.onView | ||
import androidx.test.espresso.Espresso.pressBack | ||
import androidx.test.espresso.action.ViewActions.* | ||
import androidx.test.espresso.assertion.ViewAssertions | ||
import androidx.test.espresso.assertion.ViewAssertions.matches | ||
import androidx.test.espresso.matcher.ViewMatchers.* | ||
import androidx.test.ext.junit.rules.ActivityScenarioRule | ||
import androidx.test.ext.junit.runners.AndroidJUnit4 | ||
import org.hamcrest.Matcher | ||
|
||
|
||
import org.hamcrest.core.StringStartsWith | ||
|
||
|
||
import org.junit.Test | ||
import org.junit.runner.RunWith | ||
|
||
import org.junit.Assert.* | ||
import org.junit.Rule | ||
|
||
@RunWith(AndroidJUnit4::class) | ||
class GameRepositoryTest { | ||
|
||
@Test | ||
fun createNewGameInDatabase(){ | ||
val gameObject = GameObject("Player 1","Player 2", "Player 3", "Player 3") | ||
val appContext: Context = ApplicationProvider.getApplicationContext() | ||
val repo = GameRepository(appContext) | ||
repo.resetDatabase() | ||
val newGameId = repo.createGame(gameObject, 1) | ||
assert(newGameId > 0) | ||
} | ||
|
||
@Test | ||
fun readGameFromDatabaseGameExists(){ | ||
val gameObject = GameObject("Player 1","Player 2", "Player 3", "Player 4") | ||
val appContext: Context = ApplicationProvider.getApplicationContext() | ||
val repo = GameRepository(appContext) | ||
repo.resetDatabase() | ||
val newGameId = repo.createGame(gameObject, 1) | ||
val gameObjectFromDb = repo.getGame(newGameId) | ||
assertEquals(gameObjectFromDb.id, newGameId) | ||
assertEquals(gameObjectFromDb.player1, "Player 1") | ||
assertEquals(gameObjectFromDb.player2, "Player 2") | ||
assertEquals(gameObjectFromDb.player3, "Player 3") | ||
assertEquals(gameObjectFromDb.player4, "Player 4") | ||
|
||
} | ||
|
||
@Test(expected = Exception::class) | ||
fun readGameFromDatabaseGameDoesNotExist(){ | ||
val gameObject = GameObject("Player 1","Player 2", "Player 3", "Player 4") | ||
val appContext: Context = ApplicationProvider.getApplicationContext() | ||
val repo = GameRepository(appContext) | ||
repo.resetDatabase() | ||
val gameObjectFromDb = repo.getGame(1) | ||
assert(false) | ||
|
||
} | ||
|
||
|
||
@Test | ||
fun getGamesPerUserFromDbUserAndGamesExist() { | ||
val appContext: Context = ApplicationProvider.getApplicationContext(); | ||
|
||
//Test for the activity of starting a new game | ||
val userRepo = UserRepository(appContext) | ||
userRepo.resetDatabase() | ||
val gameRepo = GameRepository(appContext) | ||
val userID = userRepo.createUser(UserObject("NewUser")) | ||
|
||
val gameId1 = gameRepo.createGame(GameObject("Player 1", "Player 2", "Player 3", "Player 4"),userID) | ||
val gameId2 = gameRepo.createGame(GameObject("Player 1", "Player 2", "Player 3", "Player 4"),userID) | ||
val gameList = gameRepo.getGames(userID) | ||
assertEquals(gameId1,gameList[0].id) | ||
assertEquals(gameId2,gameList[1].id) | ||
} | ||
|
||
@Test | ||
fun getGamesPerUserFromDbNoGamesExist() { | ||
val appContext: Context = ApplicationProvider.getApplicationContext(); | ||
|
||
//Test for the activity of starting a new game | ||
val userRepo = UserRepository(appContext) | ||
userRepo.resetDatabase() | ||
val gameRepo = GameRepository(appContext) | ||
val userID = userRepo.createUser(UserObject("NewUser")) | ||
|
||
val gameList = gameRepo.getGames(userID) | ||
assertEquals(0,gameList.size) | ||
} | ||
|
||
@Test | ||
fun getGamesPerUserFromDbUserDoesNotExist() { | ||
val appContext: Context = ApplicationProvider.getApplicationContext(); | ||
|
||
//Test for the activity of starting a new game | ||
val userRepo = UserRepository(appContext) | ||
userRepo.resetDatabase() | ||
val gameRepo = GameRepository(appContext) | ||
val userID : Long = 1 | ||
val gameList = gameRepo.getGames(userID) | ||
assertEquals(0,gameList.size) | ||
} | ||
|
||
|
||
|
||
} |
Oops, something went wrong.