From 1921449338015ff078fa9f0c56adaf17aeb4dbe4 Mon Sep 17 00:00:00 2001 From: AlvaroGA99 <55707621+AlvaroGA99@users.noreply.github.com> Date: Tue, 22 Apr 2025 09:25:48 +0200 Subject: [PATCH 1/2] Initial commit --- .../com/ironhack/lab_jpa/LabJpaApplication.java | 13 +++++++++++++ src/main/resources/application.properties | 1 + .../ironhack/lab_jpa/LabJpaApplicationTests.java | 13 +++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 src/main/java/com/ironhack/lab_jpa/LabJpaApplication.java create mode 100644 src/main/resources/application.properties create mode 100644 src/test/java/com/ironhack/lab_jpa/LabJpaApplicationTests.java diff --git a/src/main/java/com/ironhack/lab_jpa/LabJpaApplication.java b/src/main/java/com/ironhack/lab_jpa/LabJpaApplication.java new file mode 100644 index 0000000..0a66b27 --- /dev/null +++ b/src/main/java/com/ironhack/lab_jpa/LabJpaApplication.java @@ -0,0 +1,13 @@ +package com.ironhack.lab_jpa; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class LabJpaApplication { + + public static void main(String[] args) { + SpringApplication.run(LabJpaApplication.class, args); + } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..153bbd6 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name=lab-jpa diff --git a/src/test/java/com/ironhack/lab_jpa/LabJpaApplicationTests.java b/src/test/java/com/ironhack/lab_jpa/LabJpaApplicationTests.java new file mode 100644 index 0000000..9eb9423 --- /dev/null +++ b/src/test/java/com/ironhack/lab_jpa/LabJpaApplicationTests.java @@ -0,0 +1,13 @@ +package com.ironhack.lab_jpa; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class LabJpaApplicationTests { + + @Test + void contextLoads() { + } + +} From c48e7c1501f25f177de87373f91fbfa5b11143d9 Mon Sep 17 00:00:00 2001 From: AlvaroGA99 <55707621+AlvaroGA99@users.noreply.github.com> Date: Tue, 22 Apr 2025 10:46:39 +0200 Subject: [PATCH 2/2] Final commit --- .../com/ironhack/lab_jpa/models/Person.java | 59 +++++++++++++ .../repositories/PersonRepository.java | 9 ++ src/main/resources/application.properties | 3 + .../repositories/PersonRepositoryTest.java | 88 +++++++++++++++++++ 4 files changed, 159 insertions(+) create mode 100644 src/main/java/com/ironhack/lab_jpa/models/Person.java create mode 100644 src/main/java/com/ironhack/lab_jpa/repositories/PersonRepository.java create mode 100644 src/test/java/com/ironhack/lab_jpa/repositories/PersonRepositoryTest.java diff --git a/src/main/java/com/ironhack/lab_jpa/models/Person.java b/src/main/java/com/ironhack/lab_jpa/models/Person.java new file mode 100644 index 0000000..be259b8 --- /dev/null +++ b/src/main/java/com/ironhack/lab_jpa/models/Person.java @@ -0,0 +1,59 @@ +package com.ironhack.lab_jpa.models; + +import jakarta.persistence.*; + +@Entity +@Table(name = "person") +public class Person { + + @Id + @GeneratedValue(strategy = jakarta.persistence.GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false,name = "NAME") + private String name; + + @Column(nullable = false,name = "AGE") + private int age; + + public Person( String name, int age) { + this.name = name; + this.age = age; + } + + public Person() { + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Person{" + + "id=" + id + + ", name='" + name + '\'' + + ", age=" + age + + '}'; + } +} diff --git a/src/main/java/com/ironhack/lab_jpa/repositories/PersonRepository.java b/src/main/java/com/ironhack/lab_jpa/repositories/PersonRepository.java new file mode 100644 index 0000000..b6ce745 --- /dev/null +++ b/src/main/java/com/ironhack/lab_jpa/repositories/PersonRepository.java @@ -0,0 +1,9 @@ +package com.ironhack.lab_jpa.repositories; + +import com.ironhack.lab_jpa.models.Person; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface PersonRepository extends JpaRepository { + // Custom query methods can be defined here if needed + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 153bbd6..e6b45d8 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,4 @@ spring.application.name=lab-jpa +spring.datasource.url=jdbc:mysql://localhost:3306/lab_jpa +spring.datasource.username=root +spring.datasource.password=Raticida1963 diff --git a/src/test/java/com/ironhack/lab_jpa/repositories/PersonRepositoryTest.java b/src/test/java/com/ironhack/lab_jpa/repositories/PersonRepositoryTest.java new file mode 100644 index 0000000..5f24ad2 --- /dev/null +++ b/src/test/java/com/ironhack/lab_jpa/repositories/PersonRepositoryTest.java @@ -0,0 +1,88 @@ +package com.ironhack.lab_jpa.repositories; + +import com.ironhack.lab_jpa.models.Person; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.sql.SQLOutput; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +public class PersonRepositoryTest { + + @Autowired + private PersonRepository personRepository; + + @Test + public void testSave() { + // Implement the test logic here + Person person = new Person("John Doe", 30); + personRepository.save(person); + + Optional foundPerson = personRepository.findById(person.getId()); + assertNotNull(foundPerson); + System.out.println("Found person: " + foundPerson); + assertNotNull(foundPerson.get().getId()); + assertEquals("John Doe", foundPerson.get().getName()); + assertEquals(30, foundPerson.get().getAge()); + + } + + @Test + public void testFindAll() { + // Implement the test logic here + ArrayList people = new ArrayList<>(); + people.add(new Person("Ditto", 10)); + people.add(new Person("John", 20)); + people.add(new Person("Pepe", 10)); + personRepository.saveAll(people); + + List all = personRepository.findAll(); + System.out.println("All people: " + all); + assertNotNull(all); + assertEquals(3, all.size()); + assertEquals("Ditto", all.get(0).getName()); + assertEquals(30, all.get(0).getAge()); + + + } + + @Test + public void testDelete() { + Person person = new Person("John Doe", 30); + personRepository.save(person); + Optional foundPerson = personRepository.findById(person.getId()); + assertNotNull(foundPerson); + personRepository.delete(person); + Optional notfoundPerson = personRepository.findById(person.getId()); + assertTrue(notfoundPerson.isEmpty()); + + System.out.println("Found person: " + foundPerson); + + + } + + @Test + public void testUpdate() { + // Implement the test logic here + Person person = new Person("John Doe", 15); + personRepository.save(person); + Optional foundPerson = personRepository.findById(person.getId()); + assertNotNull(foundPerson); + person.setName("Nuevo nombre"); + person.setAge(30); + personRepository.save(person); + Optional foundPerson2 = personRepository.findById(person.getId()); + assertNotNull(foundPerson2); + System.out.println("Found person: " + foundPerson2); + assertNotNull(foundPerson2.get().getId()); + assertEquals("Nuevo nombre", foundPerson2.get().getName()); + assertEquals(30, foundPerson2.get().getAge()); + + } +}