From 54d269bea779d6760e304b885c494ca6d6a9ef9b Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Mon, 6 Apr 2020 15:16:11 +0800 Subject: [PATCH] test: add tests for Media as AuditableEntity --- .../domain/persistence/AuditableEntityTest.kt | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/komga/src/test/kotlin/org/gotson/komga/domain/persistence/AuditableEntityTest.kt b/komga/src/test/kotlin/org/gotson/komga/domain/persistence/AuditableEntityTest.kt index 3866d267..38f0e116 100644 --- a/komga/src/test/kotlin/org/gotson/komga/domain/persistence/AuditableEntityTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/domain/persistence/AuditableEntityTest.kt @@ -104,14 +104,49 @@ class AuditableEntityTest( // then assertThat(series.createdDate) - .isBefore(creationTimeApprox) - .isEqualTo(series.lastModifiedDate) + .isBefore(creationTimeApprox) + .isEqualTo(series.lastModifiedDate) assertThat(series.books.first().createdDate) - .isBefore(creationTimeApprox) - .isNotEqualTo(series.books.first().lastModifiedDate) + .isBefore(creationTimeApprox) + .isNotEqualTo(series.books.first().lastModifiedDate) assertThat(series.books.first().lastModifiedDate) - .isAfter(creationTimeApprox) - .isBefore(modificationTimeApprox) + .isAfter(creationTimeApprox) + .isBefore(modificationTimeApprox) + } + + @Test + fun `given existing book with media when updating media only then created date is kept and modified date is changed for media only`() { + // given + val series = makeSeries(name = "series", books = listOf(makeBook("book1"))).also { it.library = library } + + seriesRepository.save(series) + + val creationTimeApprox = LocalDateTime.now() + + Thread.sleep(1000) + + // when + series.books.first().media.comment = "mediaUpdated" + seriesRepository.saveAndFlush(series) + + val modificationTimeApprox = LocalDateTime.now() + + // then + assertThat(series.createdDate) + .isBefore(creationTimeApprox) + .isEqualTo(series.lastModifiedDate) + + assertThat(series.books.first().createdDate) + .isBefore(creationTimeApprox) + .isEqualTo(series.books.first().lastModifiedDate) + + assertThat(series.books.first().media.createdDate) + .isBefore(creationTimeApprox) + .isNotEqualTo(series.books.first().media.lastModifiedDate) + + assertThat(series.books.first().media.lastModifiedDate) + .isAfter(creationTimeApprox) + .isBefore(modificationTimeApprox) } }