Skip to content

Commit

Permalink
Move test-common to src/main (#1941)
Browse files Browse the repository at this point in the history
  • Loading branch information
jingtang10 committed Mar 30, 2023
1 parent 256ab75 commit 81246b1
Show file tree
Hide file tree
Showing 26 changed files with 352 additions and 417 deletions.
6 changes: 3 additions & 3 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ object Dependencies {
const val slf4j = "1.7.36"
const val sqlcipher = "4.5.0"
const val timber = "5.0.1"
const val truth = "1.0.1"
const val truth = "1.1.3"
const val woodstox = "6.2.7"
const val xerces = "2.12.2"
const val xmlUnit = "2.9.0"
Expand All @@ -291,9 +291,9 @@ object Dependencies {
const val benchmarkJUnit = "1.1.0"
const val core = "1.4.0"
const val archCore = "2.1.0"
const val extJunit = "1.1.3"
const val extJunit = "1.1.5"
const val rules = "1.4.0"
const val runner = "1.4.0"
const val runner = "1.5.2"
const val fragmentVersion = "1.3.6"
}

Expand Down
1 change: 1 addition & 0 deletions buildSrc/src/main/kotlin/LicenseeConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -173,4 +173,5 @@ private val nonStandardLicenseUrls =
// BSD-3
"http:https://opensource.org/licenses/BSD-3-Clause",
"http:https://www.opensource.org/licenses/bsd-license.php",
"https://asm.ow2.io/license.html",
)
11 changes: 3 additions & 8 deletions engine/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,9 @@ android {
}

sourceSets {
getByName("androidTest").apply {
java.srcDirs("src/test-common/java")
resources.setSrcDirs(listOf("sampledata"))
}
getByName("androidTest").apply { resources.setSrcDirs(listOf("test-data")) }

getByName("test").apply {
java.srcDirs("src/test-common/java")
resources.setSrcDirs(listOf("sampledata"))
}
getByName("test").apply { resources.setSrcDirs(listOf("test-data")) }
}

buildTypes {
Expand Down Expand Up @@ -119,6 +113,7 @@ dependencies {
implementation(Dependencies.jsonToolsPatch)
implementation(Dependencies.sqlcipher)
implementation(Dependencies.timber)
implementation(Dependencies.truth)

kapt(Dependencies.Room.compiler)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,16 @@ import com.google.android.fhir.db.ResourceNotFoundException
import com.google.android.fhir.db.impl.dao.toLocalChange
import com.google.android.fhir.db.impl.entities.LocalChangeEntity
import com.google.android.fhir.logicalId
import com.google.android.fhir.resource.TestingUtils
import com.google.android.fhir.search.Operation
import com.google.android.fhir.search.Order
import com.google.android.fhir.search.Search
import com.google.android.fhir.search.StringFilterModifier
import com.google.android.fhir.search.getQuery
import com.google.android.fhir.search.has
import com.google.android.fhir.testing.assertJsonArrayEqualsIgnoringOrder
import com.google.android.fhir.testing.assertResourceEquals
import com.google.android.fhir.testing.readFromFile
import com.google.android.fhir.testing.readJsonArrayFromFile
import com.google.android.fhir.versionId
import com.google.common.truth.Truth.assertThat
import java.math.BigDecimal
Expand Down Expand Up @@ -91,7 +94,6 @@ class DatabaseImplTest {

private val context: Context = ApplicationProvider.getApplicationContext()
private lateinit var services: FhirServices
private lateinit var testingUtils: TestingUtils
private lateinit var database: Database

@Before
Expand All @@ -110,7 +112,6 @@ class DatabaseImplTest {
}
.build()
database = services.database
testingUtils = TestingUtils(services.parser)
}

@After
Expand All @@ -121,10 +122,7 @@ class DatabaseImplTest {
@Test
fun insert_shouldInsertResource() = runBlocking {
database.insert(TEST_PATIENT_2)
testingUtils.assertResourceEquals(
TEST_PATIENT_2,
database.select(ResourceType.Patient, TEST_PATIENT_2_ID)
)
assertResourceEquals(TEST_PATIENT_2, database.select(ResourceType.Patient, TEST_PATIENT_2_ID))
}

@Test
Expand All @@ -133,14 +131,8 @@ class DatabaseImplTest {
patients.add(TEST_PATIENT_1)
patients.add(TEST_PATIENT_2)
database.insert(*patients.toTypedArray())
testingUtils.assertResourceEquals(
TEST_PATIENT_1,
database.select(ResourceType.Patient, TEST_PATIENT_1_ID)
)
testingUtils.assertResourceEquals(
TEST_PATIENT_2,
database.select(ResourceType.Patient, TEST_PATIENT_2_ID)
)
assertResourceEquals(TEST_PATIENT_1, database.select(ResourceType.Patient, TEST_PATIENT_1_ID))
assertResourceEquals(TEST_PATIENT_2, database.select(ResourceType.Patient, TEST_PATIENT_2_ID))
}

@Test
Expand All @@ -149,15 +141,12 @@ class DatabaseImplTest {
patient.id = TEST_PATIENT_1_ID
patient.gender = Enumerations.AdministrativeGender.FEMALE
database.update(patient)
testingUtils.assertResourceEquals(
patient,
database.select(ResourceType.Patient, TEST_PATIENT_1_ID)
)
assertResourceEquals(patient, database.select(ResourceType.Patient, TEST_PATIENT_1_ID))
}

@Test
fun update_existentResourceWithNoChange_shouldNotUpdateResource() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
patient.gender = Enumerations.AdministrativeGender.FEMALE
database.update(patient)
Expand Down Expand Up @@ -187,8 +176,8 @@ class DatabaseImplTest {
}

@Test
fun getLocalChanges_withSingleLoaleChange_shouldReturnSingleLocalChanges() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
fun getLocalChanges_withSingleLocaleChange_shouldReturnSingleLocalChanges() = runBlocking {
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
val patientString = services.parser.encodeResourceToString(patient)
val squashedLocalChange = database.getLocalChange(patient.resourceType, patient.logicalId)
Expand All @@ -201,8 +190,8 @@ class DatabaseImplTest {
}

@Test
fun getLocalChanges_withMultipleLoaleChanges_shouldReturnSquashedLocalChanges() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
fun getLocalChanges_withMultipleLocaleChanges_shouldReturnSquashedLocalChanges() = runBlocking {
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)

patient.gender = Enumerations.AdministrativeGender.FEMALE
Expand All @@ -222,21 +211,21 @@ class DatabaseImplTest {

@Test
fun getLocalChanges_withWrongResourceId_shouldReturnNull() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
assertThat(database.getLocalChange(patient.resourceType, "nonexistent_patient")).isNull()
}

@Test
fun getLocalChanges_withWrongResourceType_shouldReturnNull() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
assertThat(database.getLocalChange(ResourceType.Encounter, patient.logicalId)).isNull()
}

@Test
fun clearDatabase_shouldClearAllTablesData() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
val patientString = services.parser.encodeResourceToString(patient)
val squashedLocalChange = database.getLocalChange(patient.resourceType, patient.logicalId)
Expand All @@ -246,10 +235,7 @@ class DatabaseImplTest {
assertThat(LocalChange.Type.from(type.value)).isEqualTo(LocalChange.Type.INSERT)
assertThat(payload).isEqualTo(patientString)
}
testingUtils.assertResourceEquals(
patient,
database.select(ResourceType.Patient, patient.logicalId)
)
assertResourceEquals(patient, database.select(ResourceType.Patient, patient.logicalId))
database.clearDatabase()

assertThat(database.getLocalChange(patient.resourceType, patient.logicalId)).isNull()
Expand Down Expand Up @@ -294,10 +280,7 @@ class DatabaseImplTest {
database.insertRemote(TEST_PATIENT_2)

assertThat(database.getLocalChange(ResourceType.Patient, TEST_PATIENT_2_ID)).isNull()
testingUtils.assertResourceEquals(
TEST_PATIENT_2,
database.select(ResourceType.Patient, TEST_PATIENT_2_ID)
)
assertResourceEquals(TEST_PATIENT_2, database.select(ResourceType.Patient, TEST_PATIENT_2_ID))

database.purge(TEST_PATIENT_2.resourceType, TEST_PATIENT_2_ID)

Expand All @@ -314,10 +297,7 @@ class DatabaseImplTest {
database.insertRemote(TEST_PATIENT_2)
assertThat(database.getLocalChange(ResourceType.Patient, TEST_PATIENT_2_ID)).isNull()

testingUtils.assertResourceEquals(
TEST_PATIENT_2,
database.select(ResourceType.Patient, TEST_PATIENT_2_ID)
)
assertResourceEquals(TEST_PATIENT_2, database.select(ResourceType.Patient, TEST_PATIENT_2_ID))

database.purge(TEST_PATIENT_2.resourceType, TEST_PATIENT_2_ID, true)

Expand Down Expand Up @@ -367,10 +347,7 @@ class DatabaseImplTest {

@Test
fun select_shouldReturnResource() = runBlocking {
testingUtils.assertResourceEquals(
TEST_PATIENT_1,
database.select(ResourceType.Patient, TEST_PATIENT_1_ID)
)
assertResourceEquals(TEST_PATIENT_1, database.select(ResourceType.Patient, TEST_PATIENT_1_ID))
}

@Test
Expand All @@ -390,9 +367,9 @@ class DatabaseImplTest {

@Test
fun update_insertAndUpdate_shouldAddUpdateLocalChange() = runBlocking {
var patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
var patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
patient = testingUtils.readFromFile(Patient::class.java, "/update_test_patient_1.json")
patient = readFromFile(Patient::class.java, "/update_test_patient_1.json")
database.update(patient)
val patientString = services.parser.encodeResourceToString(patient)
val (_, resourceType, resourceId, _, type, payload, _) =
Expand Down Expand Up @@ -483,9 +460,9 @@ class DatabaseImplTest {

@Test
fun deleteUpdates_shouldDeleteLocalChanges() = runBlocking {
var patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
var patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insert(patient)
patient = testingUtils.readFromFile(Patient::class.java, "/update_test_patient_1.json")
patient = readFromFile(Patient::class.java, "/update_test_patient_1.json")
database.update(patient)
services.parser.encodeResourceToString(patient)
val localChange =
Expand All @@ -499,7 +476,7 @@ class DatabaseImplTest {

@Test
fun insert_remoteResource_shouldNotInsertLocalChange() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insertRemote(patient)
assertThat(
database
Expand Down Expand Up @@ -574,7 +551,7 @@ class DatabaseImplTest {

@Test
fun insertAll_remoteResources_shouldNotInsertAnyLocalChange() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insertRemote(patient, TEST_PATIENT_2)
assertThat(
database
Expand Down Expand Up @@ -665,11 +642,10 @@ class DatabaseImplTest {

@Test
fun update_remoteResource_readSquashedChanges_shouldReturnPatch() = runBlocking {
val patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
val patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
database.insertRemote(patient)
val updatedPatient =
testingUtils.readFromFile(Patient::class.java, "/update_test_patient_1.json")
val updatePatch = testingUtils.readJsonArrayFromFile("/update_patch_1.json")
val updatedPatient = readFromFile(Patient::class.java, "/update_test_patient_1.json")
val updatePatch = readJsonArrayFromFile("/update_patch_1.json")
database.update(updatedPatient)
val (_, resourceType, resourceId, _, type, payload, _) =
database
Expand All @@ -679,7 +655,7 @@ class DatabaseImplTest {
assertThat(type).isEqualTo(LocalChangeEntity.Type.UPDATE)
assertThat(resourceId).isEqualTo(patient.logicalId)
assertThat(resourceType).isEqualTo(patient.resourceType.name)
testingUtils.assertJsonArrayEqualsIgnoringOrder(JSONArray(payload), updatePatch)
assertJsonArrayEqualsIgnoringOrder(JSONArray(payload), updatePatch)
}

@Test
Expand All @@ -689,14 +665,14 @@ class DatabaseImplTest {
versionId = "patient-version-1"
lastUpdated = Date()
}
var patient: Patient = testingUtils.readFromFile(Patient::class.java, "/date_test_patient.json")
var patient: Patient = readFromFile(Patient::class.java, "/date_test_patient.json")
patient.meta = remoteMeta
database.insertRemote(patient)
patient = testingUtils.readFromFile(Patient::class.java, "/update_test_patient_1.json")
patient = readFromFile(Patient::class.java, "/update_test_patient_1.json")
database.update(patient)
patient = testingUtils.readFromFile(Patient::class.java, "/update_test_patient_2.json")
patient = readFromFile(Patient::class.java, "/update_test_patient_2.json")
database.update(patient)
val updatePatch = testingUtils.readJsonArrayFromFile("/update_patch_2.json")
val updatePatch = readJsonArrayFromFile("/update_patch_2.json")
val (_, resourceType, resourceId, _, type, payload, versionId) =
database
.getAllLocalChanges()
Expand All @@ -707,7 +683,7 @@ class DatabaseImplTest {
assertThat(resourceType).isEqualTo(patient.resourceType.name)
assertThat(resourceType).isEqualTo(patient.resourceType.name)
assertThat(versionId).isEqualTo(remoteMeta.versionId)
testingUtils.assertJsonArrayEqualsIgnoringOrder(JSONArray(payload), updatePatch)
assertJsonArrayEqualsIgnoringOrder(JSONArray(payload), updatePatch)
}

@Test
Expand Down Expand Up @@ -2462,8 +2438,7 @@ class DatabaseImplTest {

@Test
fun search_nameGivenDuplicate_deduplicatePatient() = runBlocking {
var patient: Patient =
testingUtils.readFromFile(Patient::class.java, "/patient_name_given_duplicate.json")
var patient: Patient = readFromFile(Patient::class.java, "/patient_name_given_duplicate.json")
database.insertRemote(patient)
val result =
database.search<Patient>(
Expand Down
Loading

0 comments on commit 81246b1

Please sign in to comment.