Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 627e10b6 rédigé par Lana Heyrendt's avatar Lana Heyrendt
Parcourir les fichiers

Merge remote-tracking branch 'origin/main'

parents f3817bfd d07eb674
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
plugins {
id 'org.springframework.boot' version '3.2.0'
id 'io.spring.dependency-management' version '1.1.4'
......
......@@ -11,8 +11,8 @@ import java.util.*
class ArticleEntity(
@Id val UUID: UUID,
val name: String,
val price: Float,
val quantity : Int,
val price: Double,
val quantity: Int,
val lastUpdate: Date
){
fun asArticle() = Article(this.UUID, this.name, this.price, this.quantity,this.lastUpdate)
......
......@@ -4,12 +4,11 @@ import assertk.assertThat
import assertk.assertions.containsExactly
import iut.nantes.tuturita.article.domain.Article
import iut.nantes.tuturita.article.repository.entity.ArticleEntity
import iut.nantes.tuturita.article.repository.entity.UserEntity
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
import java.util.UUID
import java.util.*
@DataJpaTest
class articleDatabaseRepositoryTest: articleDatabaseTest() {
......@@ -28,17 +27,20 @@ class articleDatabaseRepositoryTest: articleDatabaseTest() {
val UUID1 = UUID.randomUUID()
val UUID2 = UUID.randomUUID()
val UUID3 = UUID.randomUUID()
val date1 = Date()
val date2 = Date()
val date3 = Date()
// GIVEN
jpa.save(ArticleEntity(UUID1)
jpa.save(ArticleEntity(UUID2)
jpa.save(ArticleEntity(UUID3
jpa.save(ArticleEntity(UUID1,"HEALTH",49.9,45,date1))
jpa.save(ArticleEntity(UUID2,"Carpenter Brut",39.9,87,date2))
jpa.save(ArticleEntity(UUID3,"Perturbator",39.9,66,date3))
// WHEN
val result = repository.list(42)
val result = repository.list(39.9)
// THEN
assertThat(result).containsExactly(
Article("a", "b", "c", 42),
Article("aa", "bb", "cc", 42),
Article(UUID3,"Perturbator",39.9,66,date3),
Article(UUID2,"Carpenter Brut",39.9,87,date2)
)
}
}
\ No newline at end of file
......@@ -5,80 +5,85 @@ import assertk.assertions.*
import iut.nantes.tuturita.article.domain.Article
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
import java.util.*
abstract class articleDatabaseTest {
lateinit var repository: UserRepository
lateinit var repository: ArticleRepository
val uuid = UUID.randomUUID()
val uuid2 = UUID.randomUUID()
val uuid3 = UUID.randomUUID()
val date = Date()
@Nested
inner class CreationTest {
@Test
fun `create once is ok`() {
// GIVEN
val user = defaultUser()
val article = defaultArticle()
// WHEN
val result = repository.create(user)
val result = repository.create(article)
// THEN
assertThat(result).isSuccess()
.isEqualTo(user)
.isEqualTo(article)
}
@Test
fun `create twice with same email is an error`() {
fun `create twice with same UUID is an error`() {
// GIVEN
val user = defaultUser()
val user2 = defaultUser(firstName = "another")
repository.create(user)
val article = defaultArticle()
val article2 = defaultArticle(name = "Carpenter Brut")
repository.create(article)
// WHEN
val result = repository.create(user2)
val result = repository.create(article2)
// THEN
assertThat(result).isFailure()
}
@Test
fun `create twice with different email is ok`() {
fun `create twice with different UUID is ok`() {
// GIVEN
val user = defaultUser()
val user2 = defaultUser(email = "another@email.pony")
repository.create(user)
val article = defaultArticle()
val article2 = defaultArticle2()
repository.create(article)
// WHEN
val result = repository.create(user2)
val result = repository.create(article2)
// THEN
assertThat(result).isSuccess()
.isEqualTo(user2)
.isEqualTo(article2)
}
}
@Nested
inner class ListTests {
@Test
fun `list all users`() {
fun `list all articles`() {
// GIVEN
val user = defaultUser()
val user2 = defaultUser(email = "another@email.pony")
val user3 = defaultUser(email = "anOld@email.pony", age = 1337)
repository.create(user)
repository.create(user2)
repository.create(user3)
val article = defaultArticle()
val article2 = defaultArticle2()
val article3 = defaultArticle3()
repository.create(article)
repository.create(article2)
repository.create(article3)
// WHEN
val result = repository.list()
// THEN
assertThat(result).containsExactlyInAnyOrder(user, user2, user3)
assertThat(result).containsExactlyInAnyOrder(article, article2, article3)
}
@Test
fun `list users filtered by age`() {
fun `list articles filtered by price`() {
// GIVEN
val user = defaultUser()
val user2 = defaultUser(email = "another@email.pony")
val user3 = defaultUser(email = "anOld@email.pony", age = 1337)
repository.create(user)
repository.create(user2)
repository.create(user3)
val article = defaultArticle()
val article2 = defaultArticle2()
val article3 = defaultArticle3()
repository.create(article)
repository.create(article2)
repository.create(article3)
// WHEN
val result = repository.list(1337)
val result = repository.list(49.9)
// THEN
assertThat(result).containsExactly(user3)
assertThat(result).containsExactly(article)
}
}
......@@ -87,19 +92,20 @@ abstract class articleDatabaseTest {
@Test
fun `find existing one`() {
// GIVEN
val user = defaultUser()
repository.create(user)
val article = defaultArticle()
repository.create(article)
// WHEN
val result = repository.get(user.email)
val result = repository.get(article.UUID)
// THEN
assertThat(result).isEqualTo(user)
assertThat(result).isEqualTo(repository)
}
@Test
fun `find one without users`() {
fun `find one without article`() {
// GIVEN
// WHEN
val result = repository.get("anEmail")
val result = repository.get(UUID.randomUUID())
// THEN
assertThat(result).isNull()
}
......@@ -108,11 +114,11 @@ abstract class articleDatabaseTest {
@Nested
inner class UpdatedTest {
@Test
fun `update an existing user`() {
fun `update an existing article`() {
// GIVEN
val user = defaultUser()
val user = defaultArticle()
repository.create(user)
val update = defaultUser(firstName = "newFirst", lastName = "newLast", age = 99)
val update = defaultArticle(name = "Evangelion", price = 66.6, 70)
// WHEN
val result = repository.update(update)
// THEN
......@@ -120,9 +126,9 @@ abstract class articleDatabaseTest {
}
@Test
fun `update non-existing user`() {
fun `update non-existing article`() {
// GIVEN
val update = defaultUser(firstName = "newFirst", lastName = "newLast", age = 99)
val update = defaultArticle(name = "Evangelion", price = 66.6, 70)
// WHEN
val result = repository.update(update)
// THEN
......@@ -134,31 +140,46 @@ abstract class articleDatabaseTest {
@Nested
inner class DeleteTests {
@Test
fun `delete an existing user`() {
fun `delete an existing article`() {
// GIVEN
val user = defaultUser()
val user = defaultArticle()
repository.create(user)
// WHEN
val result = repository.delete(user.email)
val result = repository.delete(uuid)
// THEN
assertThat(result).isEqualTo(user)
}
@Test
fun `update non-existing user`() {
fun `update non-existing article`() {
// GIVEN
// WHEN
val result = repository.delete("email")
val result = repository.delete(UUID.randomUUID())
// THEN
assertThat(result).isNull()
}
}
private fun defaultUser(
email: String = "j@d.com",
firstName: String = "first",
lastName: String = "last",
age: Int = 42
) = Article(email, firstName, lastName, age)
private fun defaultArticle(
name: String = "HEALTH",
price: Double = 49.9,
quantity: Int = 45
) = Article(uuid, name, price, quantity, date)
private fun defaultArticle2(
name: String = "Carpenter Brut",
price: Double = 39.9,
quantity: Int = 54
) = Article(uuid2, name, price, quantity, date)
private fun defaultArticle3(
name: String = "Perturbator",
price: Double = 78.9,
quantity: Int = 69
) = Article(uuid3, name, price, quantity, date)
}
\ No newline at end of file
......@@ -6,6 +6,6 @@ class articleInMemoryRepositoryTest: articleDatabaseTest() {
@BeforeEach
fun setUp() {
repository = UserInMemoryRepository()
repository = ArticlesInMemoryRepository()
}
}
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter