From cac0672265ecc4355266c8511382ecea09fbf87d Mon Sep 17 00:00:00 2001 From: laura Date: Fri, 6 Aug 2021 20:41:22 -0400 Subject: [PATCH 1/4] starting again --- .idea/compiler.xml | 6 ++ .idea/encodings.xml | 3 +- .idea/jarRepositories.xml | 20 ++++ pom.xml | 100 ++++++++++++++++++++ src/main/java/entities/Album.java | 11 +++ src/main/java/entities/Artist.java | 9 ++ src/main/java/entities/MainApp.java | 8 ++ src/main/resources-META-INF/persistence.xml | 14 +++ 8 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 .idea/jarRepositories.xml create mode 100644 src/main/java/entities/Album.java create mode 100644 src/main/java/entities/Artist.java create mode 100644 src/main/java/entities/MainApp.java create mode 100644 src/main/resources-META-INF/persistence.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index db06ab1..e9fa225 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,8 +7,14 @@ + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml index ada92a5..860a155 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -1,6 +1,7 @@ - + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index c6d4cac..b6e3a30 100644 --- a/pom.xml +++ b/pom.xml @@ -8,5 +8,105 @@ jpaentity 1.0-SNAPSHOT + + 1.8 + 2.12.3 + 5.4.0 + 5.5.5.Final + 8.0.18 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.0 + + ${java.version} + ${java.version} + + + + + + org.springframework.boot + spring-boot-starter-parent + 2.2.5.RELEASE + + + + + + org.junit.jupiter + junit-jupiter-params + ${jupiter.version} + test + + + + + org.junit.vintage + junit-vintage-engine + ${jupiter.version} + test + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + org.springframework.boot + spring-boot-starter-web + compile + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + org.hibernate + hibernate-core + ${hibernate.version} + + + + + + com.h2database + h2 + runtime + + + + + mysql + mysql-connector-java + ${mysql-connector.version} + + + \ No newline at end of file diff --git a/src/main/java/entities/Album.java b/src/main/java/entities/Album.java new file mode 100644 index 0000000..d6defd5 --- /dev/null +++ b/src/main/java/entities/Album.java @@ -0,0 +1,11 @@ +package entities; + + +import javax.persistence.Entity; + +@Entity +public class Album { + + + +} diff --git a/src/main/java/entities/Artist.java b/src/main/java/entities/Artist.java new file mode 100644 index 0000000..f3d5d7c --- /dev/null +++ b/src/main/java/entities/Artist.java @@ -0,0 +1,9 @@ +package entities; + +import javax.persistence.Entity; + +@Entity +public class Artist { + + +} diff --git a/src/main/java/entities/MainApp.java b/src/main/java/entities/MainApp.java new file mode 100644 index 0000000..cc78371 --- /dev/null +++ b/src/main/java/entities/MainApp.java @@ -0,0 +1,8 @@ +package entities; + +public class MainApp { + + public static void main(String[] args) { + + } +} diff --git a/src/main/resources-META-INF/persistence.xml b/src/main/resources-META-INF/persistence.xml new file mode 100644 index 0000000..ed16b24 --- /dev/null +++ b/src/main/resources-META-INF/persistence.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file From e6a7e4f8dd629d5b2df6d6f889e412dc5ac127c0 Mon Sep 17 00:00:00 2001 From: laura Date: Mon, 9 Aug 2021 21:22:46 -0400 Subject: [PATCH 2/4] artis pass --- .idea/compiler.xml | 2 +- pom.xml | 81 ++------ src/main/java/Apps/Conector.java | 40 ++++ src/main/java/Apps/MainApp.java | 27 +++ src/main/java/Apps/jpaApplication.java | 146 ++++++++++++++ src/main/java/entities/Album.java | 58 ++++++ src/main/java/entities/Artist.java | 64 +++++- src/main/java/entities/DELETEME.txt | 0 src/main/java/entities/MainApp.java | 8 - src/main/java/services/AlbumServ.java | 66 +++++++ src/main/java/services/ArtistServ.java | 173 +++++++++++++++++ src/main/java/services/DELETEME.txt | 0 src/main/java/services/Repo.java | 71 +++++++ .../META-INF}/persistence.xml | 9 +- src/test/java/entities/TestAlbum.java | 97 ++++++++++ src/test/java/entities/TestArtist.java | 67 +++++++ src/test/java/services/TestArtistServ.java | 182 ++++++++++++++++++ target/classes/Apps/Conector.class | Bin 0 -> 1678 bytes target/classes/Apps/MainApp.class | Bin 0 -> 374 bytes target/classes/META-INF/persistence.xml | 15 ++ target/classes/entities/Album.class | Bin 0 -> 1822 bytes target/classes/entities/Artist.class | Bin 0 -> 1984 bytes target/classes/services/AlbumServ.class | Bin 0 -> 2540 bytes target/classes/services/ArtistServ.class | Bin 0 -> 3939 bytes target/classes/services/Repo.class | Bin 0 -> 1307 bytes target/test-classes/entities/TestAlbum.class | Bin 0 -> 2298 bytes target/test-classes/entities/TestArtist.class | Bin 0 -> 1826 bytes .../services/TestArtistServ.class | Bin 0 -> 2992 bytes 28 files changed, 1022 insertions(+), 84 deletions(-) create mode 100644 src/main/java/Apps/Conector.java create mode 100644 src/main/java/Apps/MainApp.java create mode 100644 src/main/java/Apps/jpaApplication.java delete mode 100644 src/main/java/entities/DELETEME.txt delete mode 100644 src/main/java/entities/MainApp.java create mode 100644 src/main/java/services/AlbumServ.java create mode 100644 src/main/java/services/ArtistServ.java delete mode 100644 src/main/java/services/DELETEME.txt create mode 100644 src/main/java/services/Repo.java rename src/main/{resources-META-INF => resources/META-INF}/persistence.xml (88%) create mode 100644 src/test/java/entities/TestAlbum.java create mode 100644 src/test/java/entities/TestArtist.java create mode 100644 src/test/java/services/TestArtistServ.java create mode 100644 target/classes/Apps/Conector.class create mode 100644 target/classes/Apps/MainApp.class create mode 100644 target/classes/META-INF/persistence.xml create mode 100644 target/classes/entities/Album.class create mode 100644 target/classes/entities/Artist.class create mode 100644 target/classes/services/AlbumServ.class create mode 100644 target/classes/services/ArtistServ.class create mode 100644 target/classes/services/Repo.class create mode 100644 target/test-classes/entities/TestAlbum.class create mode 100644 target/test-classes/entities/TestArtist.class create mode 100644 target/test-classes/services/TestArtistServ.class diff --git a/.idea/compiler.xml b/.idea/compiler.xml index e9fa225..2d37cae 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -14,7 +14,7 @@ \ No newline at end of file diff --git a/pom.xml b/pom.xml index b6e3a30..dd66e19 100644 --- a/pom.xml +++ b/pom.xml @@ -8,14 +8,6 @@ jpaentity 1.0-SNAPSHOT - - 1.8 - 2.12.3 - 5.4.0 - 5.5.5.Final - 8.0.18 - - @@ -23,89 +15,38 @@ maven-compiler-plugin 3.6.0 - ${java.version} - ${java.version} + 1.8 + 1.8 - - org.springframework.boot - spring-boot-starter-parent - 2.2.5.RELEASE - - - - - - org.junit.jupiter - junit-jupiter-params - ${jupiter.version} - test - - - - - org.junit.vintage - junit-vintage-engine - ${jupiter.version} - test - + com.fasterxml.jackson.core jackson-databind - ${jackson.version} - - - - - org.springframework.boot - spring-boot-starter-data-jpa + 2.12.3 - - - org.springframework.boot - spring-boot-starter-web - compile + mysql + mysql-connector-java + 8.0.23 - - - org.springframework.boot - spring-boot-starter-test + junit + junit + RELEASE test - - - org.junit.vintage - junit-vintage-engine - - - org.hibernate hibernate-core - ${hibernate.version} + 5.5.3.Final - - - - com.h2database - h2 - runtime - - - - - mysql - mysql-connector-java - ${mysql-connector.version} - diff --git a/src/main/java/Apps/Conector.java b/src/main/java/Apps/Conector.java new file mode 100644 index 0000000..abdd82e --- /dev/null +++ b/src/main/java/Apps/Conector.java @@ -0,0 +1,40 @@ +package Apps; + +import com.mysql.jdbc.Driver; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class Conector { + + + public Conector() { + } + + + public static void registerJDBCDriver() { + // Attempt to register JDBC Driver + try { + DriverManager.registerDriver(Driver.class.newInstance()); + } catch (InstantiationException | IllegalAccessException | SQLException e1) { + throw new RuntimeException(e1); + } + } + + public static Connection getConnection(String dbVendor) { + String username = "laura"; + String password = "zipcode0"; + String url = new StringBuilder() + .append("jdbc:") + .append(dbVendor) + .append("://127.0.0.1/") + .append("?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC") + .toString(); + try { + return DriverManager.getConnection(url, username, password); + } catch (SQLException e) { + throw new Error(e); + } + } +} diff --git a/src/main/java/Apps/MainApp.java b/src/main/java/Apps/MainApp.java new file mode 100644 index 0000000..c590371 --- /dev/null +++ b/src/main/java/Apps/MainApp.java @@ -0,0 +1,27 @@ +package Apps; + +import entities.Artist; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +public class MainApp { + + public static void main(String[] args) { + + + + + + + + + +// EntityManagerFactory managerFactory = Persistence.createEntityManagerFactory("AlbumDB"); +// EntityManager entityManager = managerFactory.createEntityManager(); +// Artist artist = entityManager.find(Artist.class, 1L); +// +// System.out.println(artist); + } +} diff --git a/src/main/java/Apps/jpaApplication.java b/src/main/java/Apps/jpaApplication.java new file mode 100644 index 0000000..c82e933 --- /dev/null +++ b/src/main/java/Apps/jpaApplication.java @@ -0,0 +1,146 @@ +package Apps; + +//import com.mysql.jdbc.Driver; +//import entities.Artist; +//import org.springframework.boot.SpringApplication; +//import org.springframework.boot.autoconfigure.SpringBootApplication; +//import services.ArtistRepo; +// +//import javax.persistence.EntityManager; +//import javax.persistence.EntityManagerFactory; +//import javax.persistence.Persistence; +//import java.sql.*; +//import java.util.StringJoiner; +// + + + + +//@SpringBootApplication +//public class jpaApplication + + + + +// static void executeStatement(Connection connection, String sqlStatement) { +// try { +// Statement statement = getScrollableStatement(connection); +// statement.execute(sqlStatement); +// //connection.setAutoCommit(false); +// connection.commit(); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// +// +// public static void main(String[] args) { +// SpringApplication.run(jpaApplication.class, args); +// registerJDBCDriver(); +// Connection mysqlDbConnection = getConnection("mysql"); +// ArtistRepo artistrepo = new ArtistRepo(mysqlDbConnection); +// +// executeStatement(mysqlDbConnection, "CREATE DATABASE IF NOT EXISTS manager;"); +// executeStatement(mysqlDbConnection, "USE manager;"); +// +// +// executeStatement(mysqlDbConnection, new StringBuilder() +// .append("CREATE TABLE IF NOT EXISTS manager.artist(") +// .append("id int auto_increment primary key,") +// .append("name text not null,") +// .append("stage_name text not null,") +// .append("numOfAwards int);" ) +// .toString()); +// artistrepo.create(new Artist(1L , "yoongi", "suga", 6789)); +// artistrepo.create(new Artist(2L, "benito", "badbunny", 2345)); +// System.out.println(artistrepo.readAll()); +// +// +// String getArtistTable = "SELECT * FROM manager.artist;"; +// ResultSet resultSet = executeQuery(mysqlDbConnection, getArtistTable); +// printResults(resultSet); +// +// +// resultSet = executeQuery(mysqlDbConnection, getArtistTable); +// printResults(resultSet); +// } +// +// static ResultSet executeQuery(Connection connection, String sqlQuery) { +// try { +// Statement statement = getScrollableStatement(connection); +// return statement.executeQuery(sqlQuery); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// +// static void printResults(ResultSet resultSet) { +// try { +// for (int rowNumber = 0; resultSet.next(); rowNumber++) { +// String firstColumnData = resultSet.getString(1); +// String secondColumnData = resultSet.getString(2); +// String thirdColumnData = resultSet.getString(3); +// System.out.println(new StringJoiner("\n") +// .add("Row number = " + rowNumber) +// .add("First Column = " + firstColumnData) +// .add("Second Column = " + secondColumnData) +// .add("Third column = " + thirdColumnData)); +// } +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// static void registerJDBCDriver() { +// // Attempt to register JDBC Driver +// try { +// DriverManager.registerDriver(Driver.class.newInstance()); +// } catch (InstantiationException | IllegalAccessException | SQLException e1) { +// throw new RuntimeException(e1); +// } +// } +// +// static Statement getScrollableStatement(Connection connection) { +// int resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; +// int resultSetConcurrency = ResultSet.CONCUR_READ_ONLY; +// try { // scrollable statements can be iterated more than once without closing +// return connection.createStatement(resultSetType, resultSetConcurrency); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// +// static Connection getConnection(String dbVendor) { +// String username = "laura"; +// String password = "zipcode0"; +// String url = new StringBuilder() +// .append("jdbc:") +// .append(dbVendor) +// .append("://127.0.0.1/") +// .append("?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC") +// .toString(); +// try { +// return DriverManager.getConnection(url, username, password); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// +//} + + +// .append("INSERT INTO manager.artist(") +// .append("id, name, stageName, numOfAwards) ") +// .append("VALUES (1L, 'yoongi', 'suga', '6789');") +// .toString()); + +// executeStatement(mysqlDbConnection, new StringBuilder() +// .append("INSERT INTO manager.artist(") +// .append("\"id, name, stageName, numOfAwards) ") +// .append("VALUES (2L, 'benito', 'badBunny', '2345');") +// .toString()); +// \ No newline at end of file diff --git a/src/main/java/entities/Album.java b/src/main/java/entities/Album.java index d6defd5..099c12d 100644 --- a/src/main/java/entities/Album.java +++ b/src/main/java/entities/Album.java @@ -2,10 +2,68 @@ import javax.persistence.Entity; +import javax.persistence.Id; @Entity public class Album { + @Id + Long id; + String name; + int numberOfSongs; + int price; + + public Album(){ + + } + + public Album(Long id, String name, int numberOfSongs, int price) { + this.id = id; + this.name = name; + this.numberOfSongs = numberOfSongs; + this.price = price; + } + + 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 getNumberOfSongs() { + return numberOfSongs; + } + + public void setNumberOfSongs(int numberOfSongs) { + this.numberOfSongs = numberOfSongs; + } + + public int getPrice() { + return price; + } + + public void setPrice(int price) { + this.price = price; + } + + @Override + public String toString() { + return "Album{" + + "name='" + name + '\'' + + ", numberOfSongs=" + numberOfSongs + + ", price=" + price + + '}'; + } } diff --git a/src/main/java/entities/Artist.java b/src/main/java/entities/Artist.java index f3d5d7c..7b8c1c5 100644 --- a/src/main/java/entities/Artist.java +++ b/src/main/java/entities/Artist.java @@ -1,9 +1,71 @@ package entities; -import javax.persistence.Entity; +import javax.persistence.*; @Entity +@Table(name = "Artist") public class Artist { + + @Id + //@GeneratedValue(strategy = GenerationType.AUTO) + Long id; + String name; + String stageName; + int numOfAwards; + + public Artist(){ + + } + public Artist (Long id, String name, String stageName, int numOfAwards){ + this.id = id; + this.name = name; + this.stageName = stageName; + this.numOfAwards = numOfAwards; + } + + 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 String getStageName() { + return stageName; + } + + public void setStageName(String stageName) { + this.stageName = stageName; + } + + public int getNumOfAwards() { + return numOfAwards; + } + + public void setNumOfAwards(int numOfAwards) { + this.numOfAwards = numOfAwards; + } + + + + @Override + public String toString() { + return "Artist{" + + "id=" + id + + ", name='" + name + '\'' + + ", stageName='" + stageName + '\'' + + ", numOfAwards=" + numOfAwards + + '}'; + } } diff --git a/src/main/java/entities/DELETEME.txt b/src/main/java/entities/DELETEME.txt deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/entities/MainApp.java b/src/main/java/entities/MainApp.java deleted file mode 100644 index cc78371..0000000 --- a/src/main/java/entities/MainApp.java +++ /dev/null @@ -1,8 +0,0 @@ -package entities; - -public class MainApp { - - public static void main(String[] args) { - - } -} diff --git a/src/main/java/services/AlbumServ.java b/src/main/java/services/AlbumServ.java new file mode 100644 index 0000000..e44b184 --- /dev/null +++ b/src/main/java/services/AlbumServ.java @@ -0,0 +1,66 @@ +package services; + +import entities.Album; +import entities.Artist; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import java.util.List; + +public class AlbumServ { + + + EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("AlbumDB"); + EntityManager entityManager = entityManagerFactory.createEntityManager(); + + + public Album findById(Long id) { + return entityManager.find(Album.class, id); + + } + public List findAll() { + return entityManager.createQuery("SELECT v FROM Album v", Album.class).getResultList(); + + } + + public void update(Long id, Album newAlbumData) { + entityManager.getTransaction().begin(); + Album album = entityManager.find(Album.class, id); + album.setId(newAlbumData.getId()); + album.setName(newAlbumData.getName()); + album.setNumberOfSongs(newAlbumData.getNumberOfSongs()); + album.setPrice(newAlbumData.getPrice()); + entityManager.getTransaction().commit(); + } + + + + public void create(Album album) { + entityManager.getTransaction().begin(); + entityManager.persist(album); + entityManager.getTransaction().commit(); + + } + + + public void delete(Long id) { + Album album = entityManager.find(Album.class, id); + entityManager.getTransaction().begin(); + entityManager.remove(album); + entityManager.getTransaction().commit(); + + } + + public void delete(Album album) { + entityManager.getTransaction().begin(); + entityManager.remove(album); + entityManager.getTransaction().commit(); + } + + +} + + +// +// \ No newline at end of file diff --git a/src/main/java/services/ArtistServ.java b/src/main/java/services/ArtistServ.java new file mode 100644 index 0000000..eb1db0f --- /dev/null +++ b/src/main/java/services/ArtistServ.java @@ -0,0 +1,173 @@ +package services; + +import entities.Album; +import entities.Artist; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import javax.persistence.Query; +import java.util.Collection; +import java.util.List; + +public class ArtistServ { + + EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("AlbumDB"); + EntityManager entityManager = entityManagerFactory.createEntityManager(); + + + public void create(Artist artist) { + entityManager.getTransaction().begin(); + entityManager.persist(artist); + entityManager.getTransaction().commit(); + } + + public void createMultiple(List list) { + entityManager.getTransaction().begin(); + list.stream() + .forEach(artist -> entityManager.persist(artist)); + entityManager.getTransaction().commit(); + } + + + public List findAll() { + return entityManager.createQuery("SELECT a FROM Artist a", Artist.class).getResultList(); + } + + + public Artist findById(Long id) { + Artist artist = entityManager.find(Artist.class, id); + return artist; + } + + public void update(Long id, Artist newArtistData) { + entityManager.getTransaction().begin(); + Artist artist = entityManager.find(Artist.class, id); + + artist.setId(newArtistData.getId()); + artist.setName(newArtistData.getName()); + artist.setStageName(newArtistData.getStageName()); + artist.setNumOfAwards(newArtistData.getNumOfAwards()); + + entityManager.getTransaction().commit(); + } + + public void delete(Long id) { + Artist artist = entityManager.find(Artist.class, id); + entityManager.getTransaction().begin(); + entityManager.remove(artist); + entityManager.getTransaction().commit(); + System.out.printf("%s has been deleted", artist.toString()); + } + + public void delete(Artist artist) { + entityManager.getTransaction().begin(); + entityManager.remove(artist); + entityManager.getTransaction().commit(); + System.out.printf("%s has been deleted", artist.toString()); + } +} + +// // getAllBooks() +// public List getBooks(Long id) { +// Artist artist = em.find(Artist.class, id); +// em.detach(artist); +// List booksWritten = artist.getAlbum(); +// return booksWritten; +// } +// +// // findById() +// public Artist findArtist(Long id) { +// Artist artist = em.find(Artist.class, new Long(id)); +// em.detach(artist); +// return artist; +// } +// +// // findAll() +// public Collection findAllAuthors() { +// Query query = em.createQuery("SELECT a FROM Author a"); +// return (Collection) query.getResultList(); +// } +// +// // update() +// public void updateAuthor(Long id, Artist newArtist) { +// Artist artistToUpdate = findArtist(id); +// em.detach(artistToUpdate); +// +// artistToUpdate.setName(newArtist.getName()); +// artistToUpdate.setStageName(newArtist.getStageName()); +// artistToUpdate.setNumOfAwards(newArtist.getNumOfAwards()); +// +// em.getTransaction().begin(); +// em.merge(artistToUpdate); +// em.getTransaction().commit(); +// } +// +// // create() +// public Long createAuthor(Artist artist) { +// em.getTransaction().begin(); +// em.persist(artist); +// em.detach(artist); +// em.getTransaction().commit(); +// return artist.getId(); +// } +// +// // delete() +// public void deleteAuthor(Long id) { +// em.getTransaction().begin(); +// Artist artist = em.find(Artist.class, id); +// em.remove(artist); +// em.getTransaction().commit(); +// } + + + + +// +// +// public Artist findById(Long id) { +// return entityManager.find(Artist.class, id); +// +// } +// public List findAll() { +// return entityManager.createQuery("SELECT v FROM Artist v", Artist.class).getResultList(); +// +// } +// +// public void update(Long id, Artist newArtistData) { +// entityManager.getTransaction().begin(); +// Artist artist = entityManager.find(Artist.class, id); +// artist.setId(newArtistData.getId()); +// artist.setName(newArtistData.getName()); +// artist.setNumOfAwards(newArtistData.getNumOfAwards()); +// artist.setStageName(newArtistData.getStageName()); +// entityManager.getTransaction().commit(); +// } +// +// +// +// public Long create(Artist artist) { +// entityManager.getTransaction().begin(); +// entityManager.persist(artist); +// entityManager.detach(artist); +// entityManager.getTransaction().commit(); +// return artist.getId(); +// +// } +// +// +// public void delete(Long id) { +// Artist artist = entityManager.find(Artist.class, id); +// entityManager.getTransaction().begin(); +// entityManager.remove(artist); +// entityManager.getTransaction().commit(); +// System.out.printf("%s has been deleted", artist.toString()); +// } +// +// public void delete(Artist artist) { +// entityManager.getTransaction().begin(); +// entityManager.remove(artist); +// entityManager.getTransaction().commit(); +// System.out.printf("%s has been deleted", artist.toString()); +// } + diff --git a/src/main/java/services/DELETEME.txt b/src/main/java/services/DELETEME.txt deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/services/Repo.java b/src/main/java/services/Repo.java new file mode 100644 index 0000000..93d7419 --- /dev/null +++ b/src/main/java/services/Repo.java @@ -0,0 +1,71 @@ +package services; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +public interface Repo { + + default void executeStatement(String sqlStatement) { + try { + Statement statement = getScrollableStatement(); + statement.execute(sqlStatement); + } catch (SQLException e) { + throw new Error(e); + } + } + + default Statement getScrollableStatement() { + int resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + int resultSetConcurrency = ResultSet.CONCUR_READ_ONLY; + try { // scrollable statements can be iterated more than once without closing + return getConnection().createStatement(resultSetType, resultSetConcurrency); + } catch (SQLException e) { + throw new Error(e); + } + } + + default ResultSet executeQuery(String sqlQuery) { + try { + Statement statement = getScrollableStatement(); + return statement.executeQuery(sqlQuery); + } catch (SQLException e) { + throw new Error(e); + } + } + + Connection getConnection(); + +} + +// default void executeStatement(String sqlStatement) { +// try { +// Statement statement = getScrollableStatement(); +// statement.execute(sqlStatement); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// default Statement getScrollableStatement() { +// int resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; +// int resultSetConcurrency = ResultSet.CONCUR_READ_ONLY; +// try { // scrollable statements can be iterated more than once without closing +// return getConnection().createStatement(resultSetType, resultSetConcurrency); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// default ResultSet executeQuery(String sqlQuery) { +// try { +// Statement statement = getScrollableStatement(); +// return statement.executeQuery(sqlQuery); +// } catch (SQLException e) { +// throw new Error(e); +// } +// } +// +// Connection getConnection(); +//} diff --git a/src/main/resources-META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml similarity index 88% rename from src/main/resources-META-INF/persistence.xml rename to src/main/resources/META-INF/persistence.xml index ed16b24..3e34e48 100644 --- a/src/main/resources-META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -3,12 +3,13 @@ xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> - - - - + + + + + \ No newline at end of file diff --git a/src/test/java/entities/TestAlbum.java b/src/test/java/entities/TestAlbum.java new file mode 100644 index 0000000..aefe2f3 --- /dev/null +++ b/src/test/java/entities/TestAlbum.java @@ -0,0 +1,97 @@ +package entities; + +import org.junit.Assert; +import org.junit.Test; + +public class TestAlbum { + +@Test + public void nameTest(){ + Album album = new Album(1L, "MOTS7", 20, 22); + String expected = "MOTS7"; + + String actual = album.getName(); + + Assert.assertEquals(expected, actual); +} + +@Test + public void setNameTest(){ + Album album1 = new Album(); + String expected = "Persona"; + + album1.setName(expected); + String actual = album1.getName(); + + Assert.assertEquals(expected, actual); +} + +@Test + public void idTest(){ + Album album = new Album(7L, "BE", 8, 35 ); + Long expected = 7L; + + Long actual = album.getId(); + + Assert.assertEquals(expected, actual); +} + +@Test + public void setIdTest(){ + Album album = new Album(); + Long expected = 2L; + + album.setId(expected); + Long actual = album.getId(); + + Assert.assertEquals(expected, actual); + + +} + +@Test + public void numOfSongs(){ + Album album = new Album(2L, "TEAR", 11, 19); + int expected = 11; + + int actual = album.getNumberOfSongs(); + + Assert.assertEquals(expected, actual); +} + +@Test + public void setNumOfSongs(){ + Album album = new Album(); + int expected = 12; + + album.setNumberOfSongs(expected); + int actual = album.getNumberOfSongs(); + + Assert.assertEquals(expected, actual); + + +} + +@Test + public void price(){ + Album album = new Album(2L, "Answer", 16, 22); + int expected = 22; + + int actual = album.getPrice(); + + Assert.assertEquals(expected, actual); +} + +@Test + public void setPriceTest(){ + + Album album = new Album(); + int expected = 23; + + album.setPrice(expected); + int actual = album.getPrice(); + + Assert.assertEquals(expected, actual); +} + +} diff --git a/src/test/java/entities/TestArtist.java b/src/test/java/entities/TestArtist.java new file mode 100644 index 0000000..a3a274e --- /dev/null +++ b/src/test/java/entities/TestArtist.java @@ -0,0 +1,67 @@ +package entities; + +import org.junit.Assert; +import org.junit.Test; + +public class TestArtist { + + @Test + public void idTest(){ + //GIVEN + Artist artistA = new Artist(1L, "Amanda", "Milk", 123); + Long expected = 1L; + //WHEN + Long actual = artistA.getId(); + //THEN + Assert.assertEquals(expected, actual); + } + + @Test + public void idTest2(){ + //given + Artist artistB = new Artist(); + Long expected = 2L; + //when + artistB.setId(expected); + Long actual = artistB.getId(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void nameTest(){ + //GIVEN + Artist artist = new Artist(); + String expected = "jimin"; + //WHEN + artist.setName(expected); + String actual = artist.getName(); + //THEN + Assert.assertEquals(expected, actual); + } + + @Test + public void stageName(){ + //GIVEN + Artist artist = new Artist(); + String expected = "suga"; + //WHEN + artist.setStageName(expected); + String actual = artist.getStageName(); + //THEN + Assert.assertEquals(expected, actual); + } + + @Test + public void numOfAwards(){ + //Given + Artist artist = new Artist(3L, "Ashley", "Halsey", 345); + int expected = 345; + //WHEN + //artist.setNumOfAwards(expected); + int actual = artist.getNumOfAwards(); + //THEN + Assert.assertEquals(expected, actual); + + } +} diff --git a/src/test/java/services/TestArtistServ.java b/src/test/java/services/TestArtistServ.java new file mode 100644 index 0000000..27d2aeb --- /dev/null +++ b/src/test/java/services/TestArtistServ.java @@ -0,0 +1,182 @@ +package services; + +import entities.Artist; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +public class TestArtistServ { + + ArtistServ artistService = new ArtistServ(); + + + @Test + public void testCreate() { + //given + Artist artist = new Artist(1L, "Namjoon", "RM", 1853); + String expected = artist.toString(); + //when + artistService.create(artist); + Artist artist1 = artistService.findById(1L); + String actual = artist1.toString(); + //then + Assert.assertEquals(expected, actual); + artistService.delete(artist); + } + + @Test + public void testFindAll() { + //given + Artist a1 = new Artist(1L, "Namjoon", "RM", 4); + Artist a2 = new Artist(2L, "Jose", "Jbalvin", 3); + List list = new ArrayList<>(); + list.add(a1); + list.add(a2); + String expected = list.toString(); + //int expected = list.size(); + //when + artistService.createMultiple(list); + //int actual = artistService.findAll().size(); + String actual = list.toString(); + //then + Assert.assertEquals(expected, actual); + artistService.delete(a1); + artistService.delete(a2); + } + + @Test + public void testFindById() { + //given + Artist artist = new Artist(1L, "Namjoon", "RM", 3); + String expected = artist.toString(); + //when + artistService.create(artist); + Artist artist1 = artistService.findById(1L); + String actual = artist1.toString(); + //then + Assert.assertEquals(expected, actual); + artistService.delete(artist); + } + + @Test + public void testUpdate() { + //given + Artist a1 = new Artist(1L, "Namjoon", "RM", 8); + Artist a2 = new Artist(1L, "Jose", "Jbalvin", 4); + String expected = a2.toString(); + //when + artistService.create(a1); + artistService.update(1L, a2); + Artist artist = artistService.findById(1L); + String actual = artist.toString(); + //then + Assert.assertEquals(expected, actual); + artistService.delete(artist); + } + + @Test + public void testDeleteByID() { + //given + Artist a1 = new Artist(1L, "Namjoon", "RM", 12); + Artist a2 = new Artist(2L, "Jose", "Jbalvin", 17); + List list = new ArrayList<>(); + list.add(a1); + list.add(a2); + int expected = 1; + //when + artistService.createMultiple(list); + artistService.delete(2L); + int actual = artistService.findAll().size(); + //then + Assert.assertEquals(expected, actual); + artistService.delete(1L); + } + + @Test + public void testDeleteByObject() { + //given + Artist a1 = new Artist(1L, "Namjoon", "RM", 23); + Artist a2 = new Artist(2L, "Jose", "Jbalvin", 12); + List list = new ArrayList<>(); + list.add(a1); + list.add(a2); + int expected = 1; + //when + artistService.createMultiple(list); + artistService.delete(a2); + int actual = artistService.findAll().size(); + //then + Assert.assertEquals(expected, actual); + artistService.delete(1L); + } + +// @Test +// public void createTest() { +// +// Artist artist = new Artist(1L, "namjoon", "rm", 826); +// String expected = artist.toString(); +// //when +// artistServ.create(artist); +// Artist artist1 = artistServ.findById(1L); +// String actual = artist1.toString(); +// //then +// Assert.assertEquals(expected, actual); +// //artistServ.delete(artist); +// +// +// } +// +// @Test +// public void testFindById() { +// //given +// Artist artist = new Artist(1L, "jose", "JBalvin", 123); +// String expected = artist.toString(); +// //when +// artistServ.create(artist); +// Artist artist1 = artistServ.findById(1L); +// String actual = artist1.toString(); +// //then +// Assert.assertEquals(expected, actual); +// artistServ.delete(artist); +// } +// +// @Test +// public void testUpdate() { +// //given +// Artist vanGogh = new Artist(1L, "benito", "badbunny", 224); +// Artist hopper = new Artist(1L, "Yoongi", "Suga", 410); +// String expected = hopper.toString(); +// //when +// artistServ.create(vanGogh); +// artistServ.update(1L, hopper); +// Artist artist = artistServ.findById(1L); +// String actual = artist.toString(); +// //then +// Assert.assertEquals(expected, actual); +// artistServ.delete(artist); +// } +// +// +//@Test +// public void create(){ +// Artist artist = new Artist(); +// +// artist.setName("jose"); +// artist.setStageName("balvin"); +// artist.setNumOfAwards(22); +// +// +// artistServ.create(artist); +// String expected = "balvin"; +// String actual = artistServ.findById(9L).getStageName(); +// +// Assert.assertEquals(expected, actual); +// artistServ.delete(9L); +// } + + + + +} diff --git a/target/classes/Apps/Conector.class b/target/classes/Apps/Conector.class new file mode 100644 index 0000000000000000000000000000000000000000..4eeb0c017ed20fdf632c54eb4b37411e2cad338a GIT binary patch literal 1678 zcmZuxU0V}J7(Ek`YzPUl31G0bMT-=I5Q4O{V6+glRTHcx&~mxijA7|!H{IQc`iFX3 zZ@{NKPwjR8K>tnanSAHLe9Y|3ocGLm&%Cq${P*Wy05H1J>e45tA|*y(X>lmF?7OC2-(KoWdB0g|`!1Apf|9Qe*2>R{!<$8F)kA659EwU_ z<`jsuJn7ncgCvor?s=z*1Z@D^Ce`7WcmctsY90YZY-))&zO&w}TCASqr z85J6_mCfeXH&@sA&1D6u_i5yTZ7P<$@3!Ou$EqX>PNQj=%&fxw->`1V$L0&a4=FMu zkz7Zq9PQoMX1&c)?Fk#En&IuW;f~m!BF}4MC=vgTb#z;3H6nI10t%CYO5svFo|3hT`#>sVlA7&Ce`+G<7)jiMsH(@Seqb~jd_^by9( zSLO1|$1fyq;3{8Y>N5tRE(qICIl9AMun%RQ&KfX~=Q*#j{I`QEzTerkj8Ilka% z9CLkwS8YOIHW@g>*xv}gL+E$JpIl)4h@8>)ZwUY~uOYCnVSb#Gx3JJn<6lxKlFj5qF&QgeAbxa?$zoWU!2$rd6r|lN_Twy9$|kK*x*9td zVJg-Q|7jDFNwYGgyj9jV-7Gz~ds6ranA>(E^nWcLikU219K+);+T(#AgMeemRmPb( v2d8hKSJ#d>hK`J}!#MpJK#YW|7`u+K;xoQh{6~1SB_!;j>jrxqJ@mf;DG5aF literal 0 HcmV?d00001 diff --git a/target/classes/META-INF/persistence.xml b/target/classes/META-INF/persistence.xml new file mode 100644 index 0000000..3e34e48 --- /dev/null +++ b/target/classes/META-INF/persistence.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/entities/Album.class b/target/classes/entities/Album.class new file mode 100644 index 0000000000000000000000000000000000000000..52b976c9a6ac100cca6ed76a75696c936f706193 GIT binary patch literal 1822 zcmZ{jZ%@-u6vm&sb$=KY<^X|#ilA%^WD58P5D*c}5&}jHi7&gYV#(;p))|d4@dNon z6M;k%KY$;~_?)(~Zj2Yb=eGBr=l;%fZvXuK`5V9jUL=sjLKk}RK!%4hJd)vY42uaw zu@J|S#AO+t#IYiAHI6ljPh(h*;h93nDk~(n4~_RmzGB!1`R%HGu&glrs$o0Uk-2Zx ztzyMox9zH9I9AoJD_nE8f5;!3wYpVzOuJ;}3uPv0wsB-Cqyln#PR()!uh@;FqFLL0 zyT=14q6!L;>D*p-u;i7 z^Uk7Pa@!=ZW102*dZpMnB2Fe70CDRIy!&8quin$5o_s4B(oMK@8~_#*o5b^M-gwJZo5$ zvRPBmUGY!S`jw214Lp}&lk_uVEj?e6?^_D-nK8HTe7}c`LQiYsnAkjPw|Hol9NrM) z_}H}Bp}UZ#pS}~%eckgDapT0<3m%R(8pPnv7Zs*ksE1~8|f5d zH`nPS$5Fn`Gb+YN?hNWXCm~$tm|z4YHA>y!O!qe7CdT+C0=GDdz!&a}Fs4NyH+_Oo zZsr8x-1QS^xdH72k)~>za3GY%&UF!{ht2Dw)-ZA8lm$=8KZTlpSu&GigefguN7$W7 zK^i&6G2zqX8NG6TAoPu!ymG`7@Q6;O+{PV0d6m26h^Sje6WcRmoNyDaf(H^k$Bg=z z3X{nAT0xL-JIG{5kSwM;frQ&Zas-*a1VmgC2Xfru^(P3TeQk4Owj;<4?p^>HVLRJF z<_I!>35YaFKxR9FMA|_fb_B_H1_|6KuQf{qS-u2B?udZ!U*;$`w!|jOby)m`=$kXd zQt?xC<$fT{kj$JSk?Qt7Xs6IqSG;+I^WO(}3L}2_yW+lGt2=eicDL5$xpS95&9p1No4 z*z0~kuiMyr`f~BDRjW`=l@#K49oO*|6r#EOCWV%(6$}}b#=N2hMy1H%c zZdx@*=E0)jy>h5?ylfNMbL@I?vE~tsM6`Q9WWdg2=+z7q{K$6VkQrSrhRfjxP~kntJo*9;bkM| zr;_xlT3R8sQEk+=?Nvvr*{kbxSzccu8f2;A>{jd=dGy&2PG#Oi32R~=DMv?B0{kumy=2oxp{5GhO@AX=C{fKeDW4iIapW(WsD z8U*YiULU~**#~26gDiJuv{G;jHG{NdB*_Rf9)sYFTNv@PBzg~V81kxO84q< zlx|?62{V06FBpdleR?6*ME}4?Ml>w4b9JoZlqLXdSoy E0>n*RNdN!< literal 0 HcmV?d00001 diff --git a/target/classes/services/AlbumServ.class b/target/classes/services/AlbumServ.class new file mode 100644 index 0000000000000000000000000000000000000000..f1c398d349994aff1cdba0e2c658ee471e4c6007 GIT binary patch literal 2540 zcma)8+g96F5ZwY}87wX}m!yOQ18FdZ#JQA^1VYQTrL}=zO79oh7LKSbQ&}d^_x?|_ zRzvGPboIF()zv+c0D)b|1EV9InLT^E!ER7tmrsdU9E&Q7FVvgSz){aZ|W_PCq_ zjtW%4StylAA~E4@*BrByN>dJowP($ur8_m7EN?eB%w5bgFGbh(3%W!9u?Aij-9;45 zGG4ibE$fah6dS0w=~6d=^S0pv_a-hn2~fCTlnlwsZ8_CInX=uHt<>ziv1*FoU8hps z6ITtxh*JxX$D)caG<=D#G~B?Dimx?%gKst5#4Sdir>EjO4d3Gj1^wBT^vcq9{2;!% zwULRtQ1Jr|I&v!V8VZ=yU|?58QNv5bHJI4b@FN~;D50#uLPf(qe$rs0s=<*}O;!iu z{0fH}j&R6xYU~Hfc2@C5ZqLX&3T`&G_U2ieD;V_TTxrto3g&_uW*ysfyQ&efSu}g# z&f9tNteTLJ&hc9Dl8ebC!&fBXg_Gu1FcU0hsiaq{vw;rr^x~ZnIIn5^PYR+Qy%#k@ zro~ba#}_3K8oB_|*$6*u_nBcyGBqq5hWS2Ej#ktWRd5mXT7X=y z4?5*0zDtOENYM)9YeI(j%m`#1nnJiv<~&b%{qEE;x{lE;&z@tvBhT0|dga-7jQ&9M zfI`rd3P%y)dWd?7__wIeFq6men91jtVjGq!2cazF7Op~;i^cRwl zMwq#vQWFiQ>bU;@BnHq%nEO2I2dwWQYktHe(=L&?m*SMjjIT%!`%83?ww-=U9WJ5Z X>F|U)Jf#lLsKe|PI?RxA3!eN3nO8%s literal 0 HcmV?d00001 diff --git a/target/classes/services/ArtistServ.class b/target/classes/services/ArtistServ.class new file mode 100644 index 0000000000000000000000000000000000000000..a9c177ae877b059c1846ea60fd0ab278eaa8fce3 GIT binary patch literal 3939 zcma)9Yj+!072Vf%Jhn8BRK;=HJRBu)V#jf zX4dscvdB-tF1e=Rar5v*-lt|YEwbXQ-|(#!?&?@p*c)svG%B7|69)SNB{B`qs$}x? z;$!qx_@&$&*1*DSurJp+v2yt#r#0Us4ka{vG!DromGexorYU7FItkhM5`*M zrI>Y`!Z^j6tt>aH^K%+*>39+wI*#LnhR^BvJiee~3@0^wQOB3?l!m8ud>P|9zJl92 zp24_=XLUS>=Na{!<9Kz?HEIRZTXV|wL_c0g;&wvASCg35@ily1!#8xih?iIt#fAJr zZYgb~FJ8M+NC(8yj5M*MKy`c*-_r1H9WUcS9k1X!I=+kV>39|MI$p!;I=+t|==h<$ zy&-Qu!jEaPud>7z|A;C}lKk$f|!k%Sw)grDIHe9y1sBl5H zg7#H%s#S~4XRiRadJm5c>(Ml-3WwSbd@!4#_FT-y@H_lI#*60<(g{l?vqq?M6J2|0 zw3nU$?o6QLnQbb*j3=UR(A-NbT@$>+Cqp=QXp=E-x*e7m&0*g$JU(15Xjx+ezr0 zV*UsyjkDQ+TP=%=^(Pg8`-ZZ?OA>S;FlCse-FlftuxGq}hgeZEvssl5f8zP@l zro2C|tjyjr+%oS-UayO+6oHLS_f0GcSifslopsWQ^o8OEZ+q5IuhXC|`-505Cv%mF zpew(IcvW~#K#B*?FM@UpLf6E8rTh7RqEo@J)Y@UP8vdx`Pk2km0;Uy?`>uS+EPLI# zX=d{NO~4jxtZe^siC0@+8r~+AyyM(#)TrH}ZJVy2R+HNNCz|XKFKFhE7k z$IFo;`nIq~;ST!W=_u+o7Nj%SlPN&g+yVh zg&3oIkt)d@lCN~IqZvdB7w{1AlC%>!r5ql{Z0O-lT1zqt?Q-t$clq9_P3+smusru~ zVnm(?HgUH+@7ct`$nLgGAIAW}r>M4QoMEQVvV88NhWC@!IpnFWke&=kG)Wgi(o(;3 zK55x4^hM(w=0o~#P*4%*(hkC1!kOB_p`B&%77nM5^!)>)kM}Z=qs2|6A8VEAL4t!x zPBO`(O!EY?BtFCc56?%GzSJarsi}0fsdTP+TAm`BWGWlcs&!g+qjsi~T2RFgQ`cFZ zpgHQABf)u}R&a{4OZJEAF614@bb_O|ZBh8Lu8(3_zOSh$4OH1hiK?JOzsH8 zmhIcKW+umOfX)oHQSyWk`O5DNw;A* zcB`dah6D=L$&iVVzqBJe-Im*s?)FKWUd5_F-rrlcEu-r=(lSm6leT&!H@ng~5vZO= zF{rckN17K(@It*)X_}<4B@IP^c*5R-01x#y?5<9O&^hv<@Oz-+~FY)8j^JRnOy-S?;C3a)B+sAB<(I>s?Ux_`BVk0?;v*gc^4uu_P$ z)(kX`D1>!pSm2ugJ7KhlNotRMXl{Eyeag5;lF91^$?EnA( literal 0 HcmV?d00001 diff --git a/target/test-classes/entities/TestAlbum.class b/target/test-classes/entities/TestAlbum.class new file mode 100644 index 0000000000000000000000000000000000000000..31d7cb4923709ac830f330367014c0c1c1036a47 GIT binary patch literal 2298 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 Date: Tue, 10 Aug 2021 13:28:41 -0400 Subject: [PATCH 3/4] test pass --- src/main/java/Apps/MainApp.java | 4 - src/main/java/services/AlbumServ.java | 7 +- src/main/java/services/ArtistServ.java | 3 - src/test/java/services/TestAlbumServ.java | 116 ++++++++++++++++++ target/classes/Apps/MainApp.class | Bin 374 -> 374 bytes target/classes/services/AlbumServ.class | Bin 2540 -> 3650 bytes target/classes/services/ArtistServ.class | Bin 3939 -> 3939 bytes .../test-classes/services/TestAlbumServ.class | Bin 0 -> 3054 bytes .../services/TestArtistServ.class | Bin 2992 -> 3016 bytes 9 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 src/test/java/services/TestAlbumServ.java create mode 100644 target/test-classes/services/TestAlbumServ.class diff --git a/src/main/java/Apps/MainApp.java b/src/main/java/Apps/MainApp.java index c590371..d16a493 100644 --- a/src/main/java/Apps/MainApp.java +++ b/src/main/java/Apps/MainApp.java @@ -2,10 +2,6 @@ import entities.Artist; -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; - public class MainApp { public static void main(String[] args) { diff --git a/src/main/java/services/AlbumServ.java b/src/main/java/services/AlbumServ.java index e44b184..b343e42 100644 --- a/src/main/java/services/AlbumServ.java +++ b/src/main/java/services/AlbumServ.java @@ -58,7 +58,12 @@ public void delete(Album album) { entityManager.getTransaction().commit(); } - + public void createMultiple(List list) { + entityManager.getTransaction().begin(); + list.stream() + .forEach(artist -> entityManager.persist(artist)); + entityManager.getTransaction().commit(); + } } diff --git a/src/main/java/services/ArtistServ.java b/src/main/java/services/ArtistServ.java index eb1db0f..184deb5 100644 --- a/src/main/java/services/ArtistServ.java +++ b/src/main/java/services/ArtistServ.java @@ -1,13 +1,10 @@ package services; -import entities.Album; import entities.Artist; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; -import javax.persistence.Query; -import java.util.Collection; import java.util.List; public class ArtistServ { diff --git a/src/test/java/services/TestAlbumServ.java b/src/test/java/services/TestAlbumServ.java new file mode 100644 index 0000000..546e49d --- /dev/null +++ b/src/test/java/services/TestAlbumServ.java @@ -0,0 +1,116 @@ +package services; + +import entities.Album; +import entities.Artist; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +public class TestAlbumServ { + + + AlbumServ albumService = new AlbumServ(); + + + @Test + public void testCreate() { + //given + Album album = new Album(1L, "MOTS7", 14, 1853); + String expected = album.toString(); + //when + albumService.create(album); + Album album1 = albumService.findById(1L); + String actual = album1.toString(); + //then + Assert.assertEquals(expected, actual); + albumService.delete(album); + } + + @Test + public void testFindAll() { + //given + Album a1 = new Album(1L, "Persona", 13, 4); + Album a2 = new Album(2L, "Tear", 12, 3); + List list = new ArrayList<>(); + list.add(a1); + list.add(a2); + String expected = list.toString(); + //int expected = list.size(); + //when + albumService.createMultiple(list); + //int actual = artistService.findAll().size(); + String actual = list.toString(); + //then + Assert.assertEquals(expected, actual); + albumService.delete(a1); + albumService.delete(a2); + } + + @Test + public void testFindById() { + //given + Album album = new Album(1L, "tmbmil", 11, 3); + String expected = album.toString(); + //when + albumService.create(album); + Album artist1 = albumService.findById(1L); + String actual = artist1.toString(); + //then + Assert.assertEquals(expected, actual); + albumService.delete(album); + } + + @Test + public void testUpdate() { + //given + Album a1 = new Album(1L, "Namjoon", 12, 8); + Album a2 = new Album(1L, "hyyh", 13, 4); + String expected = a2.toString(); + //when + albumService.create(a1); + albumService.update(1L, a2); + Album album = albumService.findById(1L); + String actual = album.toString(); + //then + Assert.assertEquals(expected, actual); + albumService.delete(album); + } + + @Test + public void testDeleteByID() { + //given + Album a1 = new Album(1L, "Namjoon", 15, 12); + Album a2 = new Album(2L, "Answere", 9, 17); + List list = new ArrayList<>(); + list.add(a1); + list.add(a2); + int expected = 1; + //when + albumService.createMultiple(list); + albumService.delete(2L); + int actual = albumService.findAll().size(); + //then + Assert.assertEquals(expected, actual); + albumService.delete(1L); + } + + @Test + public void testDeleteByObject() { + //given + Album a1 = new Album(1L, "Colores", 10, 23); + Album a2 = new Album(2L, "BE", 16, 12); + List list = new ArrayList<>(); + list.add(a1); + list.add(a2); + int expected = 1; + //when + albumService.createMultiple(list); + albumService.delete(a2); + int actual = albumService.findAll().size(); + //then + Assert.assertEquals(expected, actual); + albumService.delete(1L); + } +} diff --git a/target/classes/Apps/MainApp.class b/target/classes/Apps/MainApp.class index f574118c6006c5032047d746247f6b805771f7a7..5cdbc9f5ee8beb2d05e91e14557c5225f143d76c 100644 GIT binary patch delta 19 acmeyy^o?nQ0wW{qWJN{`MzP6Jj4}W_vIN!u delta 19 acmeyy^o?nQ0wW{mWJN{`MybhBj4}W_@&w)h diff --git a/target/classes/services/AlbumServ.class b/target/classes/services/AlbumServ.class index f1c398d349994aff1cdba0e2c658ee471e4c6007..7e95e911f1f2c3c9e910eb4542108db9323e2e25 100644 GIT binary patch literal 3650 zcmbVOX;%|x6n=(nAQ^#zin}N%0hPF;Vo^k>w80H(_hm>17)@sAWP+vpqTOrveP2J< zb1E%<=;`O4{-&NjcV?1INQ$0*$UE=Md+&3fyT1ABpPPRG*pHth*ofhJj6`r3PBmZy zMx(eJ_sA}xVl0Z&I8%?a@;n#Cd5p_$B8q!)Ap#Zm$#TCe56JSMEDy=@uq=!D^=>$9W^b}9Z*mm>%O3%X2?z%3Yrq8Wt`4sCJkpopG@;h zOTtd-=?l7J%6ss!#+@;nO5q={AfzSR^N+wTDPX- z3EP_P?@oAR&Ablft4vBZdz?dp3RJ-vOs7dA*6knXTr(X{FdS5C7&oUa-OV{<*;yuV zbg7*IaXL4f(p}1Tl<`_BEOX*4R=Z0jf(GX+!Mt zSh5;&Q;r*b?Xg_iHD@L0d9k9qUXIdqyb!74nS#}&Nt&O{Cu-}GuvLu8wt!Rtv4WJ? zZ%gZ$$&}t%%C>Vi{nH)S;}#jWb57D2F~y6dP0Sz!N#nHP1vmB z2@MXi8rrdinx%nO;cCcXPQj}2;l%LJMEhL($oVs4?H*M7oQBJIQpLQ6r_ih6X*{Fi zSq;yjL&NiULBoqUtl=fRtlrq+X-u2Mt)(Fu zr-eCKoTog@`iCloPU{&q-pc$m^u&T_u=6PB3#_UTE$Q%Pf$*mPnW=G3YtDFH52HK~ z)zX8S*r=$~Q{}9~JAhjX1>3r$oynLCks4fIY~8TUd}0Yu=NK7#PR50onczM$eO4PWDX4TI?81?XXVc`&Ux`;rk)cte!aM4!rE z_0df6O~sFNBw^c^aHtbmRDYgNS`?-Q<&tAuL< zm<4oj?d01SB@{l__xuK>r={w5RNp{NPtUKYSwyXZ8>qX^<0@?9+K6hdQPgm^0!`S? zH_cZ^7h-%<(2bq|`Xr^rd^5r7TGSnjsISJKP=Db!AFs~SZS`Az&H~0bH PVl7eu0fRDAn8wV%8NPVY delta 739 zcmZvaOH&h35QV?Vq#T&JV#-t*4Hy%Ighw>S2LUw-h=PxZZ&4#C8Z`>|ASkl&H(2v8 z+*$4{b>Y(g;m*H+MfWA9Sh$#Tdv2f8=S0^4 zW({*Z2*10@>4(gFJTg3H&`{%v$5X>I(uO+E4KElnEU;);;-%pguMKZlHZ-(a(dw;| z-?3_V&+3I z9(v_;$da>~89!50%{JSQTkbCF6KirIMj!pscNkz$dYSN(-(#INRf#PQ@un&-Gb0=j z%|Qx+lFpxXy2EOa8__%ik`5{@k4n=+?+#HEZAx^9rE*1mME($+@huoGYucSw-6!AI z&u*EOCBG$kt~E7hCus6x4A}`qGbJh3OlLt;r0u3kEq`cvR?8m8W@i>$-R}@Ch|XG$m(Uj8JaYDchz*N50mp z)mLgjz)-yrW4(w8Yo;8T$=!a}=E_D&#PnEbTXGO6MF{$jE-=SK6-ibEEB6`A&ZJF;NyjyZ-|l C7#WrT diff --git a/target/test-classes/services/TestAlbumServ.class b/target/test-classes/services/TestAlbumServ.class new file mode 100644 index 0000000000000000000000000000000000000000..4ea69be3d4ae1a1431019c9f3cccc5e7c60c67ae GIT binary patch literal 3054 zcmbtWYf}?f7=AWv*br7&?ohQ=uo^HJMT->>47Un~pn@n~DhpY{Vv@zp293Rc@aJ?o zooP|)On*RsMSn@B&)IA?OQ@acluXXNld53upGs0+!1$oBUlNui1-Udu&Ur*6z!O6#v1O6vTo9Y z2-YKb7{Mcv^EiSh;`*f+o{E(lqMjbXW&~RbG71a{s-D{{;+|K$1F{F&Bh2VNjJUj4McrSwcA_56B(v4(e$(Xzf>Lzb zVOj3#GIDP(<1*4BR?QkY!!fvSR)VxZ0)oNi&0X@sv=yslZyEEZE5<6*e3~za)>WLv zIp!V}S;ZNADxu{t=L)t}WU)h4mX=pnu8Mq9#V($y$RV$y087E1is!IZ6p<%}+lF1V z3OY$!HFR4-M~$-U_Uv2vDeP|(oy90l>Q9fD8sYKE!O)lv(ktU{Kx_VrxJ zSl(vWvBklF#l$rAIv1;t1)e<{E-Z*65^=1`GtX2kSgB^#Ezj^Bv3hH`1-5C!iY@w& z>^fMVL3lMYCyV5OZcugiX6`wU0_i!_e1(GXK>J=q?A@4g%|<)av=g%N{OcL|v@6(9 zHSZypS0F8wa*nwtEJ$dFD~!A4OP;X@f^}Sq>v4(Y)gta$cUOt1BKUESX?vC5;JK8G z<|{V9_Z81dIJUSrxQ5ewhsL;+Ra6k@cIu^k^s zi*`&AFhrmetpZz{rZzIP^d9ZxtRp>q{vA3)xIY~Ct_SEElLaI~?B=&?EZiseg#$Rn zWc&aw-UgTK5z-4v)<)6J@DrzGS18v6dz&WGMMiED+kGN=N@Q8$5TZ<0`t|U)asH}{ z{|siyQ^LhRfom8e{%O_|oXD)y>oO6>IBN)DQzYTTVT(5G2AGwnddCKReM{5>D z{6C3D3Hd6zx%tOza)=FG#C41k*d(R`5>NRMs}gtn5)V=0Nmt^FACP#;hw-N;@rDnh zS5vh}Rb$t^eHGD{C{a_|^QP}z20s!p&&OkOpDdgl9`+R$fq<2Vc#=Rl_!EZW&hy0F zB*q1jy~yzv#aQC+l{95t4oJG;;ce$kMbZKCQjs*qs}Qn*`8}@Tg`}D%>0xuWf)BKO>VTx-(W{>|R$mu%M%4*% zx`S?CB_;Rh$u-y4qj*3O*O9~{!g|c;6J$tA9vgTGJwQ#_rzY!Ba~3NeH5W)|#qCL# zq$J&*p*=3MZq4nLRY%=E?UU8wk>&VgozkLOPaRpOHO(dPgYSYmvc#GH?>udjr!0Be zAx|cc#x8k!Mm%})RKOirWa&9)ZT@5^26%FOo;H1+(mqe~K2MivCc)Fwf8a^1I?B@w Il?-9_Z?Z&Dod5s; literal 0 HcmV?d00001 diff --git a/target/test-classes/services/TestArtistServ.class b/target/test-classes/services/TestArtistServ.class index eedf78d02f0a778cbf80507756ceab6dc9a6e257..93813f652e271220a5ffed24b0e198a19c48f500 100644 GIT binary patch delta 151 zcmdlWenNc13^p!CCI&VjWMIgcyofDaR%;6bi}p4KJ`k+~q&EU(m>E=nq!9zpWHxs7 zNL_|_20ey!27Lxqpr{>0FM}F`I*=#G5DrwQ#lQ&E;lf}HWHB-5FxW7dFqi^OaRRE+ f2J%@L0vIHKX6P`mGME8%@c`8WRc)?gH(~(*^wSe> delta 127 zcmX>hzCnD$3^p!?R}5@G$iNUWc@bMU??xbtnL!0eYB6w47GqZr)Mroy^6VgL7}OZl zfjmJ5cLpP%3Pzwx69!`-i-|!82u&DFfx4X-#2B=JJQjuk1`Y;2Ad8j345*6-s2-?l J^E7rN766kp4;TOd From 617868d69f5cf24018663d84fbb6ac1f90a78a7a Mon Sep 17 00:00:00 2001 From: laura Date: Tue, 10 Aug 2021 14:22:15 -0400 Subject: [PATCH 4/4] i think am done --- src/main/java/entities/Album.java | 12 ++++--- src/main/java/entities/Artist.java | 9 +++-- src/main/java/services/ArtistServ.java | 4 +-- src/test/java/services/TestAlbumServ.java | 2 +- src/test/java/services/TestArtistServ.java | 34 ++++++++++++++++-- target/classes/entities/Album.class | Bin 1822 -> 2068 bytes target/classes/entities/Artist.class | Bin 1984 -> 2196 bytes target/classes/services/ArtistServ.class | Bin 3939 -> 3676 bytes .../test-classes/services/TestAlbumServ.class | Bin 3054 -> 3053 bytes .../services/TestArtistServ.class | Bin 3016 -> 3116 bytes 10 files changed, 47 insertions(+), 14 deletions(-) diff --git a/src/main/java/entities/Album.java b/src/main/java/entities/Album.java index 099c12d..af6e2a1 100644 --- a/src/main/java/entities/Album.java +++ b/src/main/java/entities/Album.java @@ -1,22 +1,24 @@ package entities; -import javax.persistence.Entity; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "Album") public class Album { - - @Id Long id; String name; int numberOfSongs; int price; - public Album(){ + private Long elId; + @ManyToOne + @JoinColumn(name = "elId", referencedColumnName = "id", insertable = false, updatable = false) + private Artist a; + public Album(){ } public Album(Long id, String name, int numberOfSongs, int price) { diff --git a/src/main/java/entities/Artist.java b/src/main/java/entities/Artist.java index 7b8c1c5..4ec90ef 100644 --- a/src/main/java/entities/Artist.java +++ b/src/main/java/entities/Artist.java @@ -1,13 +1,12 @@ package entities; import javax.persistence.*; +import java.util.List; @Entity @Table(name = "Artist") public class Artist { - - @Id //@GeneratedValue(strategy = GenerationType.AUTO) Long id; @@ -15,9 +14,13 @@ public class Artist { String stageName; int numOfAwards; - public Artist(){ + @OneToMany(mappedBy = "a", fetch = FetchType.EAGER) + private List albums; + + public Artist() { } + public Artist (Long id, String name, String stageName, int numOfAwards){ this.id = id; this.name = name; diff --git a/src/main/java/services/ArtistServ.java b/src/main/java/services/ArtistServ.java index 184deb5..147fd16 100644 --- a/src/main/java/services/ArtistServ.java +++ b/src/main/java/services/ArtistServ.java @@ -54,14 +54,14 @@ public void delete(Long id) { entityManager.getTransaction().begin(); entityManager.remove(artist); entityManager.getTransaction().commit(); - System.out.printf("%s has been deleted", artist.toString()); + // System.out.printf("%s has been deleted", artist.toString()); } public void delete(Artist artist) { entityManager.getTransaction().begin(); entityManager.remove(artist); entityManager.getTransaction().commit(); - System.out.printf("%s has been deleted", artist.toString()); + //System.out.printf("%s has been deleted", artist.toString()); } } diff --git a/src/test/java/services/TestAlbumServ.java b/src/test/java/services/TestAlbumServ.java index 546e49d..4b4c9a8 100644 --- a/src/test/java/services/TestAlbumServ.java +++ b/src/test/java/services/TestAlbumServ.java @@ -17,7 +17,7 @@ public class TestAlbumServ { @Test public void testCreate() { //given - Album album = new Album(1L, "MOTS7", 14, 1853); + Album album = new Album(1L, "MOTS7", 14, 25); String expected = album.toString(); //when albumService.create(album); diff --git a/src/test/java/services/TestArtistServ.java b/src/test/java/services/TestArtistServ.java index 27d2aeb..002361d 100644 --- a/src/test/java/services/TestArtistServ.java +++ b/src/test/java/services/TestArtistServ.java @@ -1,5 +1,6 @@ package services; +import entities.Album; import entities.Artist; import org.junit.Assert; import org.junit.Test; @@ -10,7 +11,7 @@ public class TestArtistServ { ArtistServ artistService = new ArtistServ(); - + AlbumServ albumService = new AlbumServ(); @Test public void testCreate() { @@ -38,7 +39,7 @@ public void testFindAll() { //int expected = list.size(); //when artistService.createMultiple(list); - //int actual = artistService.findAll().size(); + //int actual = artistService.findAll().size(); String actual = list.toString(); //then Assert.assertEquals(expected, actual); @@ -111,6 +112,33 @@ public void testDeleteByObject() { Assert.assertEquals(expected, actual); artistService.delete(1L); } +// +// @Test +// public void testGetBooks() { +// // Arrange +// Artist testA = new Artist(null, "TEST", "BOOK TO AUTHOR MAPPING", "none"); +// Long idArtist = artistService.create(testA); +// Album a = new Album(null, "TEST BOOK TO AUTHOR MAPPING1", "J.K. Rowling", "Penguin", "Fantasy", 300, idArtist); +// Album a2 = new Album(null, "TEST BOOK TO AUTHOR MAPPING2", "J.K. Rowling", "Penguin", "Fantasy", 300,idArtist); +// Long albumid = albumService.create(a); +// Long albumid2 = albumService.create(a2); +// +// // Act +// List booksWritten = artistService.getClass().getName(); +// Assert.assertEquals(2, booksWritten.size()); +// Assert.assertEquals(albumid, booksWritten.get(0).getId()); +// Assert.assertEquals(albumid2, booksWritten.get(1).getId()); +// +// for (Album bk : booksWritten) { +// System.out.println(bk.toString()); +// } +// +// albumService.delete(albumid); +// albumService.delete(albumid2); +// artistService.delete(idArtist); +// } + +} // @Test // public void createTest() { @@ -179,4 +207,4 @@ public void testDeleteByObject() { -} + diff --git a/target/classes/entities/Album.class b/target/classes/entities/Album.class index 52b976c9a6ac100cca6ed76a75696c936f706193..97407e608a3075fd04d6d0baccdb2a43a48da701 100644 GIT binary patch literal 2068 zcmZ`(U2hvj6g^|FKjONH>ojfbHX%Su9M`D>ZK0t_iW~aj;wGi3BEj3no`$XLb+le1 zDul!j;sK;4l|bSL@S_mt&Mx)Z**tje&dj~%o_p>c|MTyke*?IU7daGge+o1BN|uH! z4`kWS;OiXHxSz#Cv5#bVoW&Ed%`BdZ{U(D}2G0}{PDi28dTsw`*SofRSa0>+!+Q#) z7em)~dV1d(I0s$baNWLd`%d2-C|ok`Kh=-4H*f~NcH6q%>@di3?VeUBM&R~*&oO}K z-C^%Qd%Lgpn1CRvsgOGIoHhe2-EESFvK210H1qn79@HD2PjtdA#N>NsyKi3hcU{f< z#hCl2eaGGIcZWTf4i`QBN_)by6P)cBo;k-IXwSDDOOe@E@6LCgWz)Z6r6-+7#h@gaV+?KH!=(l9Oj|`;k`f<1Y*2p6oO4F zNa*;5RWXFK40#@OG)t%dKmC3HtB~94552a2U>O%i{uydCcKb9+xqnM+x%^mq()=(0DL(x*hE)^ zpu-0PA})Q;6d%cQj(*gh>vekFqE)o1>N}`E4AduFa|Ds37Sk^CD<3$af)(xrpvqMM zex+xMwk!bE8^=ggYsW}d7mi_7=d5F-MyO>|-aJuDm?E=j(w-&p5(!I|+W}ITg_xlf z@+ATYr?N~6X@Mv(ImK literal 1822 zcmZ{jZ%@-u6vm&sb$=KY<^X|#ilA%^WD58P5D*c}5&}jHi7&gYV#(;p))|d4@dNon z6M;k%KY$;~_?)(~Zj2Yb=eGBr=l;%fZvXuK`5V9jUL=sjLKk}RK!%4hJd)vY42uaw zu@J|S#AO+t#IYiAHI6ljPh(h*;h93nDk~(n4~_RmzGB!1`R%HGu&glrs$o0Uk-2Zx ztzyMox9zH9I9AoJD_nE8f5;!3wYpVzOuJ;}3uPv0wsB-Cqyln#PR()!uh@;FqFLL0 zyT=14q6!L;>D*p-u;i7 z^Uk7Pa@!=ZW102*dZpMnB2Fe70CDRIy!&8quin$5o_s4B(oMK@8~_#*o5b^M-gwJZo5$ zvRPBmUGY!S`jw214Lp}&lk_uVEj?e6?^_D-nK8HTe7}c`LQiYsnAkjPw|Hol9NrM) z_}H}Bp}UZ#pS}~%eckgDapT0<3m%R(8pPnv7Zs*ksE1~8|f5d zH`nPS$5Fn`Gb+YN?hNWXCm~$tm|z4YHA>y!O!qe7CdT+C0=GDdz!&a}Fs4NyH+_Oo zZsr8x-1QS^xdH72k)~>za3GY%&UF!{ht2Dw)-ZA8lm$=8KZTlpSu&GigefguN7$W7 zK^i&6G2zqX8NG6TAoPu!ymG`7@Q6;O+{PV0d6m26h^Sje6WcRmoNyDaf(H^k$Bg=z z3X{nAT0xL-JIG{5kSwM;frQ&Zas-*a1VmgC2Xfru^(P3TeQk4Owj;<4?p^>HVLRJF z<_I!>35YaFKxR9FMA|_fb_B_H1_|6KuQf{qS-u2B?udZ!U*;$`w!|jOby)m`=$kXd zQt?xC<$fT{kj$JSk?Qt7Xs6IqSG;+I^WZBrX%6g``4UP*z50+O~$-z21=sg^3rOAQEZFa>Q8_2ZH}O}CS5m}H|ejx+us zKj@6m8J+P5_@f-peRe0=q>CSN@AGo+dCooeZvOfA&%Xhz;@dQ`*iPXpcEo%xW>?H! z0#DP3V>^jw;wxhIllVe>HHqg*9LVxe%$Es#mB0%F5xZevy87Ds-YT^$r&+3YoaVZL zg%^FtwcG00?%5|TRd$??Yq@sE=^2>Q;Xjs6RkvsNT;!s)jUUzUHcx(&h^6$5drb<%Hh<5TIocB@n+I8jqIyXjbNzf0)b9`xXP zqpC>LwNw0yr!7ns@IikBguot zC7A97%mxAcdx6LhqBiVqh6#b~q&yJpH)UhTCj~ZmZ02<-Nw?!c8%WnW{cc_D*`nq| zS?lybCe=VrmpM9uyD|yV--VD%EkEz#9!v)BV=03fT+3h{?_{tbCWq?==7-;cM`XKi zw;HNTK3?umc4ISx8ji$#&2cI&%G_@fuLjC-rMNhl_01(#%KKrVI`x|jHt>i;Gn`&s z9p``e`r*lIRd?mv;IumI?n;>cfqswBWvwIe9@=_vKE~s3HZo9^wPuN-0~6mM7x6j3I4LjJqUvPb18EQ3INBpQeEiwVr|% zBoZAbk`E=aipOC@qT@u0B(ib|5m8AL_$ZW!IZotZD3OoDiJ0R=q+O3MAtFr@B5U}B zc3hFzuaqd*nzc|OpJLrl9=7KC$V7Rq*&vb4ONhvf2oe5C_*gDqmT}ns3-RyXAdyX8 zAXVVJTp*pD@YYef>7@%~vRAwVb8s-}9mFm$HT^RqE-*bV>rSAWeSb_MWGFRn=?`;? Ot0&xlMkez;l>Y<%k(s0b delta 878 zcmZ`%OD_Xq6g|^kIdks42*1_uef+$<0?1=0hz3m7AdI32QzA@@Fk_+=gn>y5 zvm(!lFmGW&85d~kGF z>KErN`&#X`%GeHJ6e;^t{ZcghM$2y1LIJUi9aJ~QtT5~8XDIh90_bE6GJ~o$M9{@5 z+@GQH9P$QjrLcl9OLDHmrq1owju6y>Q87WjfD3W>VALck(r3c(g>E5@wKO>ON%;*0QZMYK) Wa8Jc%BJc5(_qLDE9K~y>1;H z-RQ!l#&P4yjsJm;=e}eD8z+~X=-U|aD161)xDfCIjiWSQgM#+iVIv+T%uNSnJbE` zTvJ@vk)xv<+*I7+w&D)m&g;yfdA^R={#bcuY}eNE*0zrJO^LUkGQS$xce!UtbML=> zoaOc8m^@HCLkkjg|FrGWT-e1NGCvLR_3S~Ipk-yX~h%Q^ui-9yrFzEcSCX|=R z-e58WEizH$$Zw2%DanB0lrmOUgK>mh&UCw~T66r84SB-#Gn9Pc3~_k{?wzG69!pIVIi*ed#*o{IXqp*KF(FEg%Pf)#v_^)oBh+dQ;q}V5?t9qzoKv~zjYJ;t zqB}B3utILGl-Y%)|5Xyr7~nFTzAKz|ne4N68A(rSl+!mjucu!*IkRe+S&hsrB8qjc z>VIbD^XQkAavKqM`Zd|1cVvx!kJm%LaB={{28h{di&O2?3&^0}t+9b8vRb11h-W-z R7)#|_&w82kV>v5W`40ugjh_Gj delta 1399 zcmZvb+jCP@6vlrii8;y1u8k?SfVHHyC21+Cpj0K4(wi6BS~MzR5lu*h);1~4DHd-* zE8bAF9&f04zh6*V>oJ2DPbyp@BZ9V40X+SvqzF&>NmwaW(5WZf_ z_=BF(f3T?|MLRcX;4RG92A2=HtYd|aUDIQEJ7rJj(vwMpfL#!OEPp_FFOp&4pVIjc z7;KA|DO_P?OmcKZXe1NYVw0^Gtz`0z;xr420TRw^V2g3qIUV@Z_q{=j(-^FC7J{3b z8fDGEBY&BuSo9#p1~HJai;X*`)!xx6u}kraweX>+l3$y=Dan8<*g(5H4K|W+F|$>T z&YV@(rEw8Kz-5Auu$mg-UFBkH-MX=5EK;q5s|9VaiOq5rcYd?FM>Rt&mx!$shSjWP z4eP{il&V@mnI%zSNpOvPKL%UmtgKE)Iwf+QL_AzC-VJPZ`45Gf-JAI(hOl0^QOz=6 z8IzRrZFGr^J3oh-y0s?DRo_fl`lWGEw>y!FjtJZ77DQO`^u0Xd@1V!!Sg-aOtu$w?D%bnh4zHm5=+_*AJB8n^Iq3YOI!g=GN3Qh!NW&g)`x5I? zOGI~{kt`2d?OMr2dJ>jSG)O1n(uYpz!%peM1@(g!4TBZ+$%^{E@@$2tBy4(Tl5J=4 zpTjgb=bWgjA6=ng!~Zpur`RP^+%9wMmOa=Z)qC9fQnkA tfZQmV9&SQ+z!LnoEb^Uf&fW5^w_=av+`}k){{={8;Bf!| diff --git a/target/test-classes/services/TestAlbumServ.class b/target/test-classes/services/TestAlbumServ.class index 4ea69be3d4ae1a1431019c9f3cccc5e7c60c67ae..5cb1e401a0817108abf3168c8d749eebffcda7c5 100644 GIT binary patch delta 124 zcmaDS{#Ja$H&*d=3~UUn3=9koyBSy`xppwH39$?C2}n-<$nNMb!XU&T${-Ge@(dCT z+6e6Rm QW-yxEz#+bQ3!5b?0Q!RwCjbBd diff --git a/target/test-classes/services/TestArtistServ.class b/target/test-classes/services/TestArtistServ.class index 93813f652e271220a5ffed24b0e198a19c48f500..66f7b6581482375fa19927f8c52ff8ecda6de32f 100644 GIT binary patch literal 3116 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