From ec6561cf87c1285d1ca2d6bd0ae8a929251f62bb Mon Sep 17 00:00:00 2001 From: maryvictol Date: Mon, 15 Apr 2019 03:42:20 +0300 Subject: [PATCH 1/2] Update all classes --- src/main/java/Actor.java | 58 ++++++++++- src/main/java/Film.java | 94 ++++++++++++++++-- src/main/java/FilmsCollection.java | 85 +++++++++------- src/main/java/Main.java | 41 ++++---- src/test/java/ActorTest.java | 128 +++++++++++++++++++++++++ src/test/java/FilmTest.java | 58 +++++++++++ src/test/java/FilmsCollectionTest.java | 18 ++++ src/test/java/SerialisationTest.java | 4 - 8 files changed, 412 insertions(+), 74 deletions(-) create mode 100644 src/test/java/ActorTest.java create mode 100644 src/test/java/FilmTest.java create mode 100644 src/test/java/FilmsCollectionTest.java delete mode 100644 src/test/java/SerialisationTest.java diff --git a/src/main/java/Actor.java b/src/main/java/Actor.java index 3fe1397..42c611a 100644 --- a/src/main/java/Actor.java +++ b/src/main/java/Actor.java @@ -1,17 +1,67 @@ package main.java; import java.io.Serializable; +import java.util.Objects; public class Actor implements Serializable { private String firstName; private String lastName; + private String country; - public Actor(String firstName, String lastName) { + public Actor(String firstName, String lastName, String country) { + setFirstName(firstName); + setLastName(lastName); + setCountry(country); + } + + public void setFirstName(String firstName) { + if (firstName == null || firstName == "") { + throw new IllegalArgumentException("First Name shouldn't be empty."); + } this.firstName = firstName; + } + + public String getFirstName() { + return firstName; + } + + public void setLastName(String lastName) { + if (lastName == null || lastName == "") { + throw new IllegalArgumentException("Last Name shouldn't be empty."); + } this.lastName = lastName; - } + } + + public String getLastName() { + return lastName; + } + + public void setCountry(String country) { + if (country == null) { + throw new IllegalArgumentException("Country shouldn't be null."); + } + this.country = country; + } + + public String getCountry() { + return country; + } + + @Override + public boolean equals(Object compareObject) { + if (compareObject == null) { + return false; + } + if (!(compareObject instanceof Actor)) { + return false; + } + Actor compareActor = (Actor) compareObject; + return (Objects.equals(firstName, compareActor.firstName) && + Objects.equals(lastName, compareActor.lastName) && + Objects.equals(country, compareActor.country)); + } - @Override + @Override public String toString() { - return firstName + " " + lastName; + return firstName + " " + lastName + " (" + country + ")"; } } diff --git a/src/main/java/Film.java b/src/main/java/Film.java index a6eaec9..52ef583 100644 --- a/src/main/java/Film.java +++ b/src/main/java/Film.java @@ -1,19 +1,35 @@ package main.java; import java.io.Serializable; import java.util.ArrayList; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; public class Film implements Serializable { + private String filmName; + private String country; private int release; - private ArrayList mainFilmActors; + private Set mainFilmActors; - public Film(String filmName, int release, ArrayList mainFilmActors) { - this.filmName = filmName; - this.release = release; - this.mainFilmActors = mainFilmActors; + public Film(String filmName, String country, int release, Set mainFilmActors) { + setFilmName(filmName); + setCountry(country); + setRelease(release); + setMainActors(mainFilmActors); + } + + public Film(String filmName, String country, int release, Actor actor) { + setFilmName(filmName); + setCountry(country); + setRelease(release); + setMainActors(actor); } public void setFilmName(String filmName) { + if (filmName == null || filmName == "") { + throw new IllegalArgumentException("Film Name shouldn't be empty."); + } this.filmName = filmName; } @@ -21,19 +37,79 @@ public String getFilmName(){ return filmName; } - public void setMainActors(ArrayList mainFilmActors) { + public void setRelease(int release) { + if (release == 0) { + throw new IllegalArgumentException("Release year shouldn't be 0."); + } + this.release = release; + } + + public int getRelease(){ + return release; + } + + public void setCountry(String country) { + if (country == null) { + throw new IllegalArgumentException("Country shouldn't be empty."); + } + this.country = country; + } + + public String getCountry(){ + return country; + } + + public void setMainActors(Actor actor) { + if (actor == null) { + throw new IllegalArgumentException("Actors List shouldn't be null."); + } + this.mainFilmActors = new HashSet<>(); + this.mainFilmActors.add(actor); + } + + public void setMainActors(Set mainFilmActors) { + if (mainFilmActors == null) { + throw new IllegalArgumentException("Actors List shouldn't be null."); + } + this.mainFilmActors = new HashSet<>(); this.mainFilmActors = mainFilmActors; } - public ArrayList getMainActors() { + public Set getMainActors() { return mainFilmActors; } + public void addActor(Actor actor) { + if (actor == null) { + throw new IllegalArgumentException("Actor shouldn't be null."); + } + mainFilmActors.add(actor); + } + + public void deleteActor(Actor actor){ + mainFilmActors.remove(actor); + } + + @Override + public boolean equals(Object compareObject) { + if (compareObject == null) { + return false; + } + if (!(compareObject instanceof Film)) { + return false; + } + Film compareFilm = (Film) compareObject; + return (Objects.equals(filmName, compareFilm.filmName) && + Objects.equals(mainFilmActors, compareFilm.mainFilmActors) && + Objects.equals(release, compareFilm.release) && + Objects.equals(country, compareFilm.country)); + } + @Override public String toString() { - String filmInfo = "Film: " + filmName + " (" + release + ")\n" + "Stars: "; + String filmInfo = "Film: " + filmName + " (" + country + ", " + release + ")\n" + "Stars: "; for (Actor actor : mainFilmActors) { - filmInfo += actor.toString() + "\n"; + filmInfo = filmInfo + actor.toString() + "\n"; } return filmInfo; } diff --git a/src/main/java/FilmsCollection.java b/src/main/java/FilmsCollection.java index ada6ab4..d653ae2 100644 --- a/src/main/java/FilmsCollection.java +++ b/src/main/java/FilmsCollection.java @@ -1,14 +1,48 @@ package main.java; import java.io.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.Calendar; +import java.util.*; public class FilmsCollection implements Serializable { - private ArrayList films; + private Set films; public FilmsCollection(){ - films = new ArrayList(); + films = new HashSet(); + } + + public FilmsCollection(Film film) { + this.films = new HashSet<>(); + setFilms(film); + } + + public FilmsCollection(Set films) { + this.films = new HashSet<>(); + setFilms(films); + } + + public void setFilms(Film film){ + if (films == null) { + throw new IllegalArgumentException("Films list shouldn't be null."); + } + this.films.add(film); + } + + public void setFilms(Set films){ + if (films == null) { + throw new IllegalArgumentException("Films list shouldn't be null."); + } + this.films=films; + } + + public Set getFilms() { + return films; + } + + public void addFilmToCollection(Film newFilm) { + films.add(newFilm); + } + + public void deleteFilmFromCollection(Film film) { + films.remove(film); } public void serialisationCollection(Object object, String filePath) { @@ -19,48 +53,27 @@ public void serialisationCollection(Object object, String filePath) { } } - - public void deserialisationCollection(String fileName) { try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName))) { FilmsCollection filmsCollection = (FilmsCollection)in.readObject(); - - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { + } catch (FileNotFoundException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } } - public void addFilmToCollection(Film newFilm) { - films.add(newFilm); - } - - public boolean deleteFilmFromCollectionByName(String name) { - boolean flag = films.removeIf(film -> film.getFilmName().equals(name)); - if (!flag) { - System.out.println("Film " + name + "hasn't been found"); - } - return flag; - } - - public boolean deleteActorFromFilm(String filmName, String name) { - boolean flag = false; - for (Film film : films){ - if (film.getFilmName().equals(filmName)) { - flag = film.getMainActors().removeIf(actor -> film.getMainActors().equals(name)); + @Override + public String toString() { + StringBuilder filmCollectionInfo = new StringBuilder("Films collection:"); + if (films.size()!=0) { + for (Film film : films) { + filmCollectionInfo.append(film.toString()); } - } - if (!flag) { - System.out.println("Actor " + name + "hasn't been found"); } - return flag; - } - - public void addActorToMainActorsList(String filmName, String name) { - + return filmCollectionInfo.toString(); } } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index b5fabc0..a143508 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -2,6 +2,8 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import static java.util.Arrays.*; @@ -10,30 +12,27 @@ public class Main { public static void main(String[] args) { - FilmsCollection filmsCollection = new FilmsCollection(); - //Create actors - Actor actor1 = new Actor("Tom", "Hanks"); - Actor actor2 = new Actor("Catherine", "Zeta-Jones"); - Actor actor3 = new Actor("Helen", "Hunt"); - Actor actor4 = new Actor("Antonio", "Banderas"); - Actor actor5 = new Actor("Anthony", "Hopkins"); + + //Create actors and films + Set actors = new HashSet<>(); + for (int i=0; i<=3; i++) { + actors.add(new Actor("FirstName"+i,"LastName"+i, "Country"+i)); + } + Film film1 = new Film("Film1" ,"Country1", 2000, actors); + + Set actors1 = new HashSet<>(); + for (int i=1; i<=5; i++) { + actors.add(new Actor("FirstName"+i,"LastName"+i, "Country"+i)); + } + Film film2 = new Film("Film1" ,"Country1", 2000, actors); + + Set films = new HashSet<>(); + films.add(film1); + films.add(film2); //Create films collection - Actor [] arrayActors = {actor1,actor2}; - ArrayList listActors = new ArrayList (Arrays.asList(arrayActors)); - Film film = new Film("The Terminal", 2004, listActors); - filmsCollection.addFilmToCollection(film); - - arrayActors[1] = actor3; - listActors = new ArrayList (Arrays.asList(arrayActors)); - film = new Film("Cast Away", 2000, listActors); - filmsCollection.addFilmToCollection(film); - - Actor [] arrayActors1 = {actor2, actor4, actor5}; - listActors = new ArrayList (Arrays.asList(arrayActors)); - film = new Film("The Mask of Zorro", 1998, listActors); - filmsCollection.addFilmToCollection(film); + FilmsCollection filmsCollection = new FilmsCollection(films); //Serialisation diff --git a/src/test/java/ActorTest.java b/src/test/java/ActorTest.java new file mode 100644 index 0000000..40ea213 --- /dev/null +++ b/src/test/java/ActorTest.java @@ -0,0 +1,128 @@ +package test.java; + +import main.java.Actor; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import static org.junit.Assert.*; + + +public class ActorTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void createActorWithNullFirstName() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("First Name shouldn't be empty."); + Actor actor = new Actor(null,"LastName1", "Country1"); + } + + @Test + public void createActorWithEmptyFirstName() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("First Name shouldn't be empty."); + Actor actor = new Actor("","LastName1", "Country1"); + } + + @Test + public void createActorWithNullLastName() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("Last Name shouldn't be empty."); + Actor actor = new Actor("FirstName1",null, "Country1"); + } + + @Test + public void createActorWithEmptyLastName() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("Last Name shouldn't be empty."); + Actor actor = new Actor("FirstName1","", "Country1"); + } + + @Test + public void createActorWithNullCountry() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("Country shouldn't be null."); + Actor actor = new Actor("FirstName1","LastName1", null); + } + + @Test + public void createActorWithValidValues() { + Actor actor = new Actor("FirstName1","LastName1", "Country1"); + assertEquals("Incorrect FirstName: ","FirstName1",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1",actor.getCountry()); + } + + @Test + public void updateActorWithValidFirstName() { + Actor actor = new Actor("FirstName1","LastName1", "Country1"); + assertEquals("Incorrect FirstName: ","FirstName1",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1",actor.getCountry()); + actor.setFirstName(actor.getFirstName() + "-new"); + assertEquals("Incorrect FirstName: ","FirstName1-new",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1",actor.getCountry()); + } + + @Test + public void updateActorWithValidLastName() { + Actor actor = new Actor("FirstName1","LastName1", "Country1"); + assertEquals("Incorrect FirstName: ","FirstName1",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1",actor.getCountry()); + actor.setLastName(actor.getLastName() + "-new"); + assertEquals("Incorrect FirstName: ","FirstName1",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1-new",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1",actor.getCountry()); + } + + @Test + public void updateActorWithValidCountry() { + Actor actor = new Actor("FirstName1","LastName1", "Country1"); + assertEquals("Incorrect FirstName: ","FirstName1",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1",actor.getCountry()); + actor.setCountry(actor.getCountry() + "-new"); + assertEquals("Incorrect FirstName: ","FirstName1",actor.getFirstName()); + assertEquals("Incorrect LastName: ","LastName1",actor.getLastName()); + assertEquals("Incorrect Country: ","Country1-new",actor.getCountry()); + } + + @Test + public void checkToStringMethod() { + Actor actor = new Actor("FirstName1", "LastName1", "Country1"); + String result = "FirstName1 LastName1 (Country1)"; + assertEquals("Incorrect Actor: ", result, actor.toString()); + } + + @Test + public void checkEqualsMethodForTrueCase() { + Actor actor = new Actor("FirstName1", "LastName1", "Country1"); + Actor actor1 = new Actor("FirstName1", "LastName1", "Country1"); + assertTrue(actor.equals(actor1)); + } + + @Test + public void checkEqualsMethodForDifferentFirstName() { + Actor actor = new Actor("FirstName1", "LastName1", "Country1"); + Actor actor1 = new Actor("FirstName2", "LastName1", "Country1"); + assertFalse(actor.equals(actor1)); + } + + @Test + public void checkEqualsMethodForDifferentLastName() { + Actor actor = new Actor("FirstName1", "LastName1", "Country1"); + Actor actor1 = new Actor("FirstName1", "LastName2", "Country1"); + assertFalse(actor.equals(actor1)); + } + + @Test + public void checkEqualsMethodForDifferentCountry() { + Actor actor = new Actor("FirstName1", "LastName1", "Country1"); + Actor actor1 = new Actor("FirstName1", "LastName1", "Country2"); + assertFalse(actor.equals(actor1)); + } + +} diff --git a/src/test/java/FilmTest.java b/src/test/java/FilmTest.java new file mode 100644 index 0000000..cfdaa90 --- /dev/null +++ b/src/test/java/FilmTest.java @@ -0,0 +1,58 @@ +package test.java; + +import main.java.Actor; +import main.java.Film; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import java.util.HashSet; +import java.util.Set; + +import static org.junit.Assert.*; + +public class FilmTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void createFilmWithOneActor() { + Actor actor = new Actor("FirstName1","LastName1", "Country1"); + Film film = new Film("Film1" ,"Country1", 2000, actor); + String result = "Film: Film1 (Country1, 2000)\n" + + "Stars: FirstName1 LastName1 (Country1)\n"; + assertEquals("Incorrect Film: ", result, film.toString()); + } + + @Test + public void createFilmWithThreeActors() { + Set actors = new HashSet<>(); + for (int i=0; i<=3; i++) { + actors.add(new Actor("FirstName"+i,"LastName"+i, "Country"+i)); + } + Film film = new Film("Film1" ,"Country1", 2000, actors); + assertEquals("Incorrect Film: ", 4, film.getMainActors().size()); + } + + @Test + public void createFilmWithNullFilmName() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("Film Name shouldn't be empty."); + Film film = new Film(null ,"Country1", 2000, new Actor("FirstName","LastName", "Country")); + } + + @Test + public void createFilmWithNullCountry() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("Country shouldn't be empty."); + Film film = new Film("FilmName" ,null, 2000, new Actor("FirstName","LastName", "Country")); + } + + @Test + public void createFilmWithNullRelease() { + thrown.expect(IllegalArgumentException.class); + thrown.expectMessage("Release year shouldn't be 0."); + Film film = new Film("FilmName" ,"Country", 0, new Actor("FirstName","LastName", "Country")); + } + +} diff --git a/src/test/java/FilmsCollectionTest.java b/src/test/java/FilmsCollectionTest.java new file mode 100644 index 0000000..5a144e1 --- /dev/null +++ b/src/test/java/FilmsCollectionTest.java @@ -0,0 +1,18 @@ +package test.java; + +import main.java.Actor; +import main.java.Film; +import main.java.FilmsCollection; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import java.util.HashSet; +import java.util.Set; + +import static org.junit.Assert.*; + +public class FilmsCollectionTest { + + +} diff --git a/src/test/java/SerialisationTest.java b/src/test/java/SerialisationTest.java deleted file mode 100644 index 7cd816f..0000000 --- a/src/test/java/SerialisationTest.java +++ /dev/null @@ -1,4 +0,0 @@ -package test.java; - -public class SerialisationTest { -} From 52fdf797cc732020cc0180f3b123f3511d46b0c5 Mon Sep 17 00:00:00 2001 From: maryvictol Date: Sun, 21 Apr 2019 18:56:17 +0300 Subject: [PATCH 2/2] fix errors; add tests --- src/incorrectResult.bin | Bin 0 -> 4038 bytes src/main/java/Actor.java | 8 ++ src/main/java/Film.java | 18 +++- src/main/java/FilmsCollection.java | 26 +++--- src/main/java/Main.java | 45 ---------- src/test/java/FilmTest.java | 45 ++++++++++ src/test/java/FilmsCollectionTest.java | 115 +++++++++++++++++++++++++ 7 files changed, 199 insertions(+), 58 deletions(-) create mode 100644 src/incorrectResult.bin delete mode 100644 src/main/java/Main.java diff --git a/src/incorrectResult.bin b/src/incorrectResult.bin new file mode 100644 index 0000000000000000000000000000000000000000..35740a72d2e983717a4cdd3306b6128fcf85766c GIT binary patch literal 4038 zcmeH}Urxe65XMIk0X3i|KKSGf0Qqk;5rY~{8ejAR4Hm2^Ew+o+#Q5wbJPP3mK6?tT z;7r%uu6qKhO}d**^V{jS{bt))%x8=F403@Fdt=jfD-Y(AS-G&CanSc1#~Lu(bI%dM zt9Ogj*GC3c49E=$VNf<`L3PS(r+Q1FYlP(r*=rf4<{X+C9cO1FKh%_btaV1IvK?z?-_ve_^o0WjLlgs@^c)c1K4B z6iDN>Ikq0*4b}{vnznX2V4fe)-IZ_xkjKmn3VojJfI*QUT6hpa*+}G;BC;HdjB;Uu zR~&aZ@Y=_bfo!br=lR8M<=@~iGd`$I@v;UX@trbimK(7TKbmS>gF+!WLqceDv5z4>pF=w6~84aFkvSz zFvZTMN@5_%rk=B*k{C#`5k_cEFKpViC~UrKy|AfH6)nqDg#X-II?lpdew mainFilmAct setFilmName(filmName); setCountry(country); setRelease(release); + this.mainFilmActors = new HashSet<>(); setMainActors(mainFilmActors); } @@ -23,6 +24,7 @@ public Film(String filmName, String country, int release, Actor actor) { setFilmName(filmName); setCountry(country); setRelease(release); + this.mainFilmActors = new HashSet<>(); setMainActors(actor); } @@ -63,7 +65,6 @@ public void setMainActors(Actor actor) { if (actor == null) { throw new IllegalArgumentException("Actors List shouldn't be null."); } - this.mainFilmActors = new HashSet<>(); this.mainFilmActors.add(actor); } @@ -71,8 +72,7 @@ public void setMainActors(Set mainFilmActors) { if (mainFilmActors == null) { throw new IllegalArgumentException("Actors List shouldn't be null."); } - this.mainFilmActors = new HashSet<>(); - this.mainFilmActors = mainFilmActors; + this.mainFilmActors.addAll(mainFilmActors); } public Set getMainActors() { @@ -90,11 +90,23 @@ public void deleteActor(Actor actor){ mainFilmActors.remove(actor); } + @Override + public int hashCode(){ + int mainFilmActorsHashCode = 0; + for (Actor actor : mainFilmActors) { + mainFilmActorsHashCode += Objects.hashCode(actor); + } + return Objects.hash(filmName, country, release)+ mainFilmActorsHashCode; + } + @Override public boolean equals(Object compareObject) { if (compareObject == null) { return false; } + if (this == compareObject) { + return true; + } if (!(compareObject instanceof Film)) { return false; } diff --git a/src/main/java/FilmsCollection.java b/src/main/java/FilmsCollection.java index d653ae2..d4cde25 100644 --- a/src/main/java/FilmsCollection.java +++ b/src/main/java/FilmsCollection.java @@ -1,11 +1,12 @@ package main.java; + import java.io.*; import java.util.*; public class FilmsCollection implements Serializable { private Set films; - public FilmsCollection(){ + public FilmsCollection() { films = new HashSet(); } @@ -19,18 +20,18 @@ public FilmsCollection(Set films) { setFilms(films); } - public void setFilms(Film film){ + public void setFilms(Film film) { if (films == null) { throw new IllegalArgumentException("Films list shouldn't be null."); } this.films.add(film); } - public void setFilms(Set films){ + public void setFilms(Set films) { if (films == null) { throw new IllegalArgumentException("Films list shouldn't be null."); } - this.films=films; + this.films.addAll(films); } public Set getFilms() { @@ -45,7 +46,7 @@ public void deleteFilmFromCollection(Film film) { films.remove(film); } - public void serialisationCollection(Object object, String filePath) { + public static void serialisationCollection(Object object, String filePath) { try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath))) { oos.writeObject(object); } catch (IOException e) { @@ -53,22 +54,26 @@ public void serialisationCollection(Object object, String filePath) { } } - public void deserialisationCollection(String fileName) { - try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName))) { - FilmsCollection filmsCollection = (FilmsCollection)in.readObject(); + public static FilmsCollection deserialisationCollection(String fileName) { + FilmsCollection filmsCollection = null; + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName))) { + filmsCollection = (FilmsCollection) in.readObject(); } catch (FileNotFoundException e) { - e.printStackTrace(); + System.out.println("Не удается найти указанный файл " + fileName); } catch (ClassNotFoundException e) { e.printStackTrace(); + } catch (StreamCorruptedException e) { + System.out.println("Deserialisation error"); } catch (IOException e) { e.printStackTrace(); } + return filmsCollection; } @Override public String toString() { StringBuilder filmCollectionInfo = new StringBuilder("Films collection:"); - if (films.size()!=0) { + if (films.size() != 0) { for (Film film : films) { filmCollectionInfo.append(film.toString()); } @@ -76,5 +81,6 @@ public String toString() { return filmCollectionInfo.toString(); } + } diff --git a/src/main/java/Main.java b/src/main/java/Main.java deleted file mode 100644 index a143508..0000000 --- a/src/main/java/Main.java +++ /dev/null @@ -1,45 +0,0 @@ -package main.java; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import static java.util.Arrays.*; - - -public class Main { - - public static void main(String[] args) { - - - - //Create actors and films - Set actors = new HashSet<>(); - for (int i=0; i<=3; i++) { - actors.add(new Actor("FirstName"+i,"LastName"+i, "Country"+i)); - } - Film film1 = new Film("Film1" ,"Country1", 2000, actors); - - Set actors1 = new HashSet<>(); - for (int i=1; i<=5; i++) { - actors.add(new Actor("FirstName"+i,"LastName"+i, "Country"+i)); - } - Film film2 = new Film("Film1" ,"Country1", 2000, actors); - - Set films = new HashSet<>(); - films.add(film1); - films.add(film2); - - //Create films collection - FilmsCollection filmsCollection = new FilmsCollection(films); - - - //Serialisation - filmsCollection.serialisationCollection(filmsCollection,"result.bin"); - - filmsCollection.deserialisationCollection("result.bin"); - System.out.println(""); - - } -} diff --git a/src/test/java/FilmTest.java b/src/test/java/FilmTest.java index cfdaa90..cc81fff 100644 --- a/src/test/java/FilmTest.java +++ b/src/test/java/FilmTest.java @@ -55,4 +55,49 @@ public void createFilmWithNullRelease() { Film film = new Film("FilmName" ,"Country", 0, new Actor("FirstName","LastName", "Country")); } + @Test + public void addActorNotFromFilmList() { + Film newFilm = createFilmForTest("Film1", "Country1", 2000, 5); + newFilm.addActor(new Actor("FirstName6","LastName6", "Country6")); + Set actors = newFilm.getMainActors(); + assertEquals(6, actors.size()); + } + + @Test + public void addActorAlreadyAddedToFilmList() { + Film newFilm = createFilmForTest("Film1", "Country1", 2000, 7); + int initialActorsNumber = newFilm.getMainActors().size(); + newFilm.addActor(new Actor("FirstName6","LastName6", "Country6")); + Set actors = newFilm.getMainActors(); + assertEquals(initialActorsNumber, actors.size()); + } + + @Test + public void deleteExistingActor() { + Film newFilm = createFilmForTest("Film1", "Country1", 2000, 10); + int initialActorsNumber = newFilm.getMainActors().size(); + newFilm.deleteActor(new Actor("FirstName6","LastName6", "Country6")); + Set actors = newFilm.getMainActors(); + assertEquals(initialActorsNumber-1, actors.size()); + } + + @Test + public void deleteNonExistingActor() { + Film newFilm = createFilmForTest("Film1", "Country1", 2000, 10); + int initialActorsNumber = newFilm.getMainActors().size(); + newFilm.deleteActor(new Actor("FirstName11","LastName11", "Country11")); + Set actors = newFilm.getMainActors(); + assertEquals(initialActorsNumber, actors.size()); + } + + //Create film for tests with specify number of Actors + public static Film createFilmForTest(String filmName, String country, int release, int numberActors){ + Set actors = new HashSet<>(); + for (int i=0; i films = new HashSet<>(); + for (int i = 0; i < 10; i++) { + Film newFilm = FilmTest.createFilmForTest("FilmName" + i, "Country" + i, 2000, 10); + films.add(newFilm); + } + FilmsCollection filmsCollection = new FilmsCollection(films); + assertEquals(10, filmsCollection.getFilms().size()); + } + + @Test + public void newFilmIsAddedToCollection() { + Set films = new HashSet<>(); + for (int i = 0; i < 10; i++) { + Film newFilm = FilmTest.createFilmForTest("FilmName" + i, "Country" + i, 2000, 10); + films.add(newFilm); + } + FilmsCollection filmsCollection = new FilmsCollection(films); + int initialFilmsNumber = filmsCollection.getFilms().size(); + Film newFilm = FilmTest.createFilmForTest("FilmName11", "Country11", 2011, 10); + filmsCollection.addFilmToCollection(newFilm); + assertEquals(initialFilmsNumber + 1, filmsCollection.getFilms().size()); + } + + @Test + public void existingFilmIsNotAddedToCollection() { + Set films = new HashSet<>(); + for (int i = 0; i <= 10; i++) { + Film newFilm = FilmTest.createFilmForTest("FilmName" + i, "Country" + i, 2000, 10); + films.add(newFilm); + } + FilmsCollection filmsCollection = new FilmsCollection(films); + int initialFilmsNumber = filmsCollection.getFilms().size(); + Film existingFilm = FilmTest.createFilmForTest("FilmName10", "Country10", 2000, 10); + filmsCollection.addFilmToCollection(existingFilm); + assertEquals(initialFilmsNumber, filmsCollection.getFilms().size()); + } + + @Test + public void existingFilmIsDeleteFromCollection() { + Set films = new HashSet<>(); + for (int i = 0; i <= 10; i++) { + Film newFilm = FilmTest.createFilmForTest("FilmName" + i, "Country" + i, 2000, 10); + films.add(newFilm); + } + FilmsCollection filmsCollection = new FilmsCollection(films); + int initialFilmsNumber = filmsCollection.getFilms().size(); + Film existingFilm = FilmTest.createFilmForTest("FilmName10", "Country10", 2000, 10); + filmsCollection.deleteFilmFromCollection(existingFilm); + assertEquals(initialFilmsNumber - 1, filmsCollection.getFilms().size()); + } + + @Test + public void nonExistingFilmIsDeleteFromCollection() { + Set films = new HashSet<>(); + for (int i = 0; i <= 10; i++) { + Film newFilm = FilmTest.createFilmForTest("FilmName" + i, "Country" + i, 2000, 10); + films.add(newFilm); + } + FilmsCollection filmsCollection = new FilmsCollection(films); + int initialFilmsNumber = filmsCollection.getFilms().size(); + Film existingFilm = FilmTest.createFilmForTest("FilmName10", "Country10", 2010, 10); + filmsCollection.deleteFilmFromCollection(existingFilm); + assertEquals(initialFilmsNumber, filmsCollection.getFilms().size()); + } + + @Test + public void checkSerialisationFilmCollection() { + Set films = new HashSet<>(); + for (int i = 0; i < 10; i++) { + Film newFilm = FilmTest.createFilmForTest("FilmName" + i, "Country" + i, 2000, 10); + films.add(newFilm); + } + FilmsCollection initialFilmsCollection = new FilmsCollection(films); + initialFilmsCollection.serialisationCollection(initialFilmsCollection,"result.bin"); + FilmsCollection deserialisationFilmsCollection = FilmsCollection.deserialisationCollection("result.bin"); + assertEquals(10, deserialisationFilmsCollection.getFilms().size()); + } + @Test + public void checkDeserialisationNonExistingFileWithFilmCollection() { + assertNull(FilmsCollection.deserialisationCollection("result11.bin")); + } + @Test + public void checkDeserialisationIncorrectFileWithFilmCollection(){ + assertNull(FilmsCollection.deserialisationCollection("src/incorrectResult.bin")); + } }