package net.pokeranalytics.android.components

import io.realm.RealmList
import net.pokeranalytics.android.model.realm.*
import java.util.*

open class SessionInstrumentedUnitTest : RealmInstrumentedUnitTest() {

	// convenience extension
	fun Session.Companion.testInstance(
		netResult: Double = 0.0,
		isTournament: Boolean = false,
		startDate: Date = Date(),
		endDate: Int = 1,
		bankroll: Bankroll? = null,
		game: Game? = null,
		location: Location? = null,
		tournamentName: TournamentName? = null,
		tournamentFeatures: RealmList<TournamentFeature> = RealmList(),
		numberOfTable: Int = 1,
		limit: Int? = null,
		tableSize: Int? = null
	): Session {
		val session: Session = Session.newInstance(super.mockRealm, isTournament, bankroll)
		session.game = game
		session.location = location
		session.tournamentFeatures = tournamentFeatures
		session.tournamentName = tournamentName
		session.limit = limit
		session.numberOfTables = numberOfTable
		session.tableSize = tableSize
		session.startDate = startDate
		session.result?.netResult = netResult
		val cal = Calendar.getInstance() // creates calendar
		cal.time = startDate // sets calendar time/date
		cal.add(Calendar.HOUR_OF_DAY, endDate) // adds one hour
		session.endDate = cal.time // returns new date object, one hour in the future
		return session
	}

}