Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
thellmund committed Dec 23, 2021
1 parent ba19ed8 commit f2e7ad6
Show file tree
Hide file tree
Showing 10 changed files with 99 additions and 106 deletions.
3 changes: 0 additions & 3 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests.includeAndroidResources = true
}
}

dependencies {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package com.alamkanak.weekview

import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotEquals
import org.junit.Test
import org.junit.runner.RunWith
import java.util.Calendar

@RunWith(AndroidJUnit4::class)
class DateExtensionsTest {

@Test
Expand Down
40 changes: 22 additions & 18 deletions core/src/test/java/com/alamkanak/weekview/DiffResultTest.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
package com.alamkanak.weekview

import androidx.test.ext.junit.runners.AndroidJUnit4
import com.alamkanak.weekview.EventsProcessor.DiffResult
import com.alamkanak.weekview.util.MockFactory
import com.alamkanak.weekview.util.Mocks
import com.alamkanak.weekview.util.withDifferentId
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import java.util.Calendar

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [27])
@RunWith(AndroidJUnit4::class)
class DiffResultTest {

@Test
fun `DiffResult for empty existing and new entities contains no elements`() {
val existingEntities = emptyList<ResolvedWeekViewEntity>()
val newEntities = emptyList<ResolvedWeekViewEntity>()
val existingEntities = emptyList<WeekViewItem>()
val newEntities = emptyList<WeekViewItem>()

val result = DiffResult.calculateDiff(
existingEntities = existingEntities,
Expand All @@ -29,8 +28,8 @@ class DiffResultTest {

@Test
fun `New entities are correctly recognized as new`() {
val existingEntities = emptyList<ResolvedWeekViewEntity>()
val newEntities = MockFactory.resolvedWeekViewEntities(count = 2)
val existingEntities = emptyList<WeekViewItem>()
val newEntities = Mocks.weekViewItems(count = 2)

val result = DiffResult.calculateDiff(
existingEntities = existingEntities,
Expand All @@ -43,9 +42,10 @@ class DiffResultTest {

@Test
fun `Updated entities are correctly recognized as new`() {
val existingEntity = MockFactory.resolvedWeekViewEntity()
val newEntity = existingEntity.createCopy(
endTime = existingEntity.startTime + Hours(2)
val existingEntity = Mocks.weekViewItem()
val newEntity = existingEntity.copyWith(
startTime = existingEntity.timing.startTime,
endTime = existingEntity.timing.endTime + Hours(1)
)

val result = DiffResult.calculateDiff(
Expand All @@ -59,11 +59,15 @@ class DiffResultTest {

@Test
fun `New and updated entities are correctly recognized together`() {
val existingEntity = MockFactory.resolvedWeekViewEntity()
val updatedEntity = existingEntity.createCopy(
endTime = existingEntity.startTime + Hours(2)
val startTime = Calendar.getInstance()
val endTime = startTime + Hours(1)

val existingEntity = Mocks.weekViewItem(startTime, endTime)
val updatedEntity = existingEntity.copyWith(
startTime = existingEntity.timing.startTime,
endTime = existingEntity.timing.endTime + Hours(1),
)
val newEntity = MockFactory.resolvedWeekViewEntity()
val newEntity = Mocks.weekViewItem(startTime, endTime)

val result = DiffResult.calculateDiff(
existingEntities = listOf(existingEntity),
Expand All @@ -76,7 +80,7 @@ class DiffResultTest {

@Test
fun `Removed entities are correctly recognized as to-remove`() {
val entityToRemove = MockFactory.resolvedWeekViewEntity()
val entityToRemove = Mocks.weekViewItem()

val result = DiffResult.calculateDiff(
existingEntities = listOf(entityToRemove),
Expand All @@ -89,7 +93,7 @@ class DiffResultTest {

@Test
fun `Otherwise equal entities with different IDs are treated as separate elements`() {
val existingEntity = MockFactory.resolvedWeekViewEntity()
val existingEntity = Mocks.weekViewItem()
val newEntity = existingEntity.withDifferentId()

val result = DiffResult.calculateDiff(
Expand Down
3 changes: 3 additions & 0 deletions core/src/test/java/com/alamkanak/weekview/PeriodTest.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package com.alamkanak.weekview

import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import java.util.Calendar

@RunWith(AndroidJUnit4::class)
class PeriodTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package com.alamkanak.weekview

import androidx.test.ext.junit.runners.AndroidJUnit4
import com.alamkanak.weekview.util.Event
import com.alamkanak.weekview.util.createResolvedWeekViewEvent
import com.alamkanak.weekview.util.Mocks
import com.google.common.truth.Truth.assertThat
import com.nhaarman.mockitokotlin2.mock
import org.junit.Assert.assertEquals
import org.junit.Test
import org.mockito.Mockito.mock
import org.junit.runner.RunWith
import org.mockito.Mockito.`when` as whenever

@RunWith(AndroidJUnit4::class)
class WeekViewEventSplitterTest {

private val viewState: ViewState = mock()
Expand All @@ -19,7 +22,7 @@ class WeekViewEventSplitterTest {

val startTime = today().withHour(11)
val endTime = startTime + Hours(2)
val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)

val results = event.split(viewState)
val expected = listOf(event)
Expand All @@ -32,28 +35,28 @@ class WeekViewEventSplitterTest {
whenever(viewState.minHour).thenReturn(7)
whenever(viewState.maxHour).thenReturn(21)

val event = createResolvedWeekViewEvent(
val event = Mocks.weekViewItem(
startTime = today().withHour(1),
endTime = today().withHour(2)
)
val results = event.split(viewState)

assertEquals(emptyList<ResolvedWeekViewEntity>(), results)
assertThat(results).isEmpty()
}

@Test
fun `single-day event after range is ignored`() {
whenever(viewState.minHour).thenReturn(7)
whenever(viewState.maxHour).thenReturn(21)

val event = createResolvedWeekViewEvent(
val event = Mocks.weekViewItem(
startTime = today().withHour(22),
endTime = today().plus(Days(1)).withHour(6)
)

val results = event.split(viewState)

assertEquals(emptyList<ResolvedWeekViewEntity>(), results)
assertThat(results).isEmpty()
}

@Test
Expand All @@ -64,15 +67,15 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(8)
val endTime = today().withHour(12)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val expected = listOf(
Event(today().withHour(10), today().withHour(12))
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand All @@ -85,15 +88,15 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(18)
val endTime = today().withHour(23)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val expected = listOf(
Event(today().withHour(18), today().withTimeAtEndOfPeriod(20))
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand All @@ -106,7 +109,7 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(11)
val endTime = (startTime + Days(1)).withHour(2)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val expected = listOf(
Expand All @@ -115,7 +118,7 @@ class WeekViewEventSplitterTest {
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand All @@ -131,7 +134,7 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(5)
val endTime = (startTime + Days(2)).withHour(23)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val tomorrow = today() + Days(1)
Expand All @@ -142,7 +145,7 @@ class WeekViewEventSplitterTest {
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand All @@ -158,15 +161,15 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(8)
val endTime = (startTime + Days(1)).withHour(5)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val expected = listOf(
Event(startTime, startTime.withTimeAtEndOfPeriod(maxHour))
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand All @@ -182,15 +185,15 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(22)
val endTime = (startTime + Days(1)).withHour(9)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val expected = listOf(
Event(endTime.withHour(minHour), endTime)
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand All @@ -203,7 +206,7 @@ class WeekViewEventSplitterTest {
val startTime = today().withHour(11)
val endTime = (startTime + Days(2)).withHour(2)

val event = createResolvedWeekViewEvent(startTime, endTime)
val event = Mocks.weekViewItem(startTime, endTime)
val results = event.split(viewState)

val intermediateDate = startTime + Days(1)
Expand All @@ -214,7 +217,7 @@ class WeekViewEventSplitterTest {
)

val expectedTimes = expected.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.startTime.timeInMillis to it.endTime.timeInMillis }
val resultTimes = results.map { it.timing.startTime.timeInMillis to it.timing.endTime.timeInMillis }

assertEquals(expectedTimes, resultTimes)
}
Expand Down
Loading

0 comments on commit f2e7ad6

Please sign in to comment.