From a846c037cbe24aac76faeee1f4c3e3091e6ca8d4 Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Fri, 30 Aug 2019 00:34:11 +0200 Subject: [PATCH 01/14] BAEL-3219 Parsing an XML File Using SAX Parser --- .../java/com/baeldung/sax/SaxParserMain.java | 161 ++++++++++++++++++ xml/src/main/resources/sax/baeldung.xml | 16 ++ 2 files changed, 177 insertions(+) create mode 100644 xml/src/main/java/com/baeldung/sax/SaxParserMain.java create mode 100644 xml/src/main/resources/sax/baeldung.xml diff --git a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java new file mode 100644 index 0000000000..fdf9b524d0 --- /dev/null +++ b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java @@ -0,0 +1,161 @@ +package com.baeldung.sax; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class SaxParserMain { + public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + + BaeldungHandler baeldungHandler = new BaeldungHandler(); + saxParser.parse("xml\\src\\main\\resources\\sax\\baeldung.xml", baeldungHandler); + System.out.println(baeldungHandler.getWebsite()); + } + + public static class BaeldungHandler extends DefaultHandler { + private Baeldung website; + private String elementValue; + + @Override + public void characters(char[] ch, int start, int length) throws SAXException { + elementValue = new String(ch, start, length); + } + + @Override + public void startDocument() throws SAXException { + website = new Baeldung(); + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + switch (qName) { + case ARTICLES: + website.setArticleList(new ArrayList<>()); + break; + case ARTICLE: + website.getArticleList().add(new BaeldungArticle()); + } + } + + @Override + public void endElement(String uri, String localName, String qName) throws SAXException { + switch (qName) { + case TITLE: + latestArticle().setTitle(elementValue); + break; + case CONTENT: + latestArticle().setContent(elementValue); + break; + } + } + + private BaeldungArticle latestArticle() { + List articleList = website.getArticleList(); + int latestArticleIndex = articleList.size() - 1; + return articleList.get(latestArticleIndex); + } + + public Baeldung getWebsite() { + return website; + } + + @Override + public String toString() { + return "BaeldungHandler{" + + "website=" + website + + ", elementValue='" + elementValue + '\'' + + '}'; + } + + private static final String ARTICLES = "articles"; + private static final String ARTICLE = "article"; + private static final String TITLE = "title"; + private static final String CONTENT = "content"; + } + + + public static class Baeldung { + private List articleList; + + public List getArticleList() { + return articleList; + } + + public void setArticleList(List articleList) { + this.articleList = articleList; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Baeldung baeldung = (Baeldung) o; + return Objects.equals(articleList, baeldung.articleList); + } + + @Override + public int hashCode() { + return Objects.hash(articleList); + } + + @Override + public String toString() { + return "Baeldung{" + + "articleList=" + articleList + + '}'; + } + } + + public static class BaeldungArticle { + private String title; + private String content; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BaeldungArticle that = (BaeldungArticle) o; + return Objects.equals(title, that.title) && + Objects.equals(content, that.content); + } + + @Override + public int hashCode() { + return Objects.hash(title, content); + } + + @Override + public String toString() { + return "BaeldungArticle{" + + "title='" + title + '\'' + + ", content='" + content + '\'' + + '}'; + } + } +} diff --git a/xml/src/main/resources/sax/baeldung.xml b/xml/src/main/resources/sax/baeldung.xml new file mode 100644 index 0000000000..4b839f35c7 --- /dev/null +++ b/xml/src/main/resources/sax/baeldung.xml @@ -0,0 +1,16 @@ + + +
+ Parsing an XML File Using SAX Parser + Lorem ipsum... +
+
+ Parsing an XML File Using DOM Parser + Lorem ipsum... +
+
+ Parsing an XML File Using StAX Parser + Lorem ipsum... +
+
+
\ No newline at end of file From 6e77eef313253f92b4c9643e1e75f72cce41e7ba Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Sat, 31 Aug 2019 13:38:40 +0200 Subject: [PATCH 02/14] BAEL-3219 Parsing an XML File Using SAX Parser --- .../com/baeldung/sax/SaxParserMainTest.java | 44 +++++++++++++++++++ xml/src/test/resources/sax/baeldung.xml | 16 +++++++ 2 files changed, 60 insertions(+) create mode 100644 xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java create mode 100644 xml/src/test/resources/sax/baeldung.xml diff --git a/xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java b/xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java new file mode 100644 index 0000000000..af31bc3bd2 --- /dev/null +++ b/xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java @@ -0,0 +1,44 @@ +package com.baeldung.sax; + +import org.junit.Test; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.*; + +public class SaxParserMainTest { + + @Test + void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException { + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + + SaxParserMain.BaeldungHandler baeldungHandler = new SaxParserMain.BaeldungHandler(); + saxParser.parse("xml\\src\\test\\resources\\sax\\baeldung.xml", baeldungHandler); + + SaxParserMain.Baeldung result = baeldungHandler.getWebsite(); + + assertNotNull(result); + List articles = result.getArticleList(); + + assertNotNull(articles); + assertEquals(3, articles.size()); + + SaxParserMain.BaeldungArticle articleOne = articles.get(0); + assertEquals("Parsing an XML File Using SAX Parser", articleOne.getTitle()); + assertEquals("Lorem ipsum...", articleOne.getContent()); + + SaxParserMain.BaeldungArticle articleTwo = articles.get(1); + assertEquals("Parsing an XML File Using DOM Parser", articleTwo.getTitle()); + assertEquals("Lorem ipsum...", articleTwo.getContent()); + + SaxParserMain.BaeldungArticle articleThree = articles.get(2); + assertEquals("Parsing an XML File Using StAX Parser", articleThree.getTitle()); + assertEquals("Lorem ipsum...", articleThree.getContent()); + } +} diff --git a/xml/src/test/resources/sax/baeldung.xml b/xml/src/test/resources/sax/baeldung.xml new file mode 100644 index 0000000000..4b839f35c7 --- /dev/null +++ b/xml/src/test/resources/sax/baeldung.xml @@ -0,0 +1,16 @@ + + +
+ Parsing an XML File Using SAX Parser + Lorem ipsum... +
+
+ Parsing an XML File Using DOM Parser + Lorem ipsum... +
+
+ Parsing an XML File Using StAX Parser + Lorem ipsum... +
+
+
\ No newline at end of file From 21804927e3b2bdd1edcad9af94581edd8b445fe3 Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Sat, 31 Aug 2019 15:40:44 +0200 Subject: [PATCH 03/14] BAEL-3219 Parsing an XML File Using SAX Parser --- .../{SaxParserMainTest.java => SaxParserMainUnitTest.java} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename xml/src/test/java/com/baeldung/sax/{SaxParserMainTest.java => SaxParserMainUnitTest.java} (84%) diff --git a/xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java similarity index 84% rename from xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java rename to xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java index af31bc3bd2..d9351aed03 100644 --- a/xml/src/test/java/com/baeldung/sax/SaxParserMainTest.java +++ b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java @@ -11,15 +11,15 @@ import java.util.List; import static org.junit.Assert.*; -public class SaxParserMainTest { +public class SaxParserMainUnitTest { @Test - void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException { + public void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); SaxParserMain.BaeldungHandler baeldungHandler = new SaxParserMain.BaeldungHandler(); - saxParser.parse("xml\\src\\test\\resources\\sax\\baeldung.xml", baeldungHandler); + saxParser.parse("src\\test\\resources\\sax\\baeldung.xml", baeldungHandler); SaxParserMain.Baeldung result = baeldungHandler.getWebsite(); From 08da9be66649c6056a6490f25ac7d446172e23a6 Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Sat, 31 Aug 2019 21:48:19 +0200 Subject: [PATCH 04/14] BAEL-3219 Parsing an XML File Using SAX Parser --- .../java/com/baeldung/sax/SaxParserMainUnitTest.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java index d9351aed03..d94857dbb5 100644 --- a/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java +++ b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java @@ -7,6 +7,11 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.List; import static org.junit.Assert.*; @@ -14,12 +19,13 @@ import static org.junit.Assert.*; public class SaxParserMainUnitTest { @Test - public void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException { + public void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException, URISyntaxException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); SaxParserMain.BaeldungHandler baeldungHandler = new SaxParserMain.BaeldungHandler(); - saxParser.parse("src\\test\\resources\\sax\\baeldung.xml", baeldungHandler); + Path path = Paths.get(new URL("src\\test\\resources\\sax\\baeldung.xml").toURI()); + saxParser.parse(path.toFile(), baeldungHandler); SaxParserMain.Baeldung result = baeldungHandler.getWebsite(); From 6f4957a63d07358c4bfa9acc4819d0164b15b6dd Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Sat, 31 Aug 2019 21:57:51 +0200 Subject: [PATCH 05/14] BAEL-3219 Parsing an XML File Using SAX Parser --- .../java/com/baeldung/sax/SaxParserMainUnitTest.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java index d94857dbb5..8a8aa62dd2 100644 --- a/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java +++ b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java @@ -7,11 +7,6 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.List; import static org.junit.Assert.*; @@ -19,13 +14,12 @@ import static org.junit.Assert.*; public class SaxParserMainUnitTest { @Test - public void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException, URISyntaxException { + public void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); SaxParserMain.BaeldungHandler baeldungHandler = new SaxParserMain.BaeldungHandler(); - Path path = Paths.get(new URL("src\\test\\resources\\sax\\baeldung.xml").toURI()); - saxParser.parse(path.toFile(), baeldungHandler); + saxParser.parse("src/test/resources/sax/baeldung.xml", baeldungHandler); SaxParserMain.Baeldung result = baeldungHandler.getWebsite(); From 59729b7e2339cd63072566db388691b22112f6bc Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Sun, 1 Sep 2019 21:37:01 +0200 Subject: [PATCH 06/14] BAEL-3219 Parsing an XML File Using SAX Parser --- xml/pom.xml | 7 ++ .../java/com/baeldung/sax/SaxParserMain.java | 93 +++---------------- 2 files changed, 18 insertions(+), 82 deletions(-) diff --git a/xml/pom.xml b/xml/pom.xml index bbd607f9b5..3b8b88ba73 100644 --- a/xml/pom.xml +++ b/xml/pom.xml @@ -111,6 +111,13 @@ ${commons-lang.version} + + org.projectlombok + lombok + 1.18.8 + provided + + org.junit.jupiter junit-jupiter diff --git a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java index fdf9b524d0..654d5162cd 100644 --- a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java +++ b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java @@ -1,5 +1,7 @@ package com.baeldung.sax; +import lombok.Data; +import lombok.ToString; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -10,7 +12,6 @@ import javax.xml.parsers.SAXParserFactory; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Objects; public class SaxParserMain { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { @@ -18,11 +19,17 @@ public class SaxParserMain { SAXParser saxParser = factory.newSAXParser(); BaeldungHandler baeldungHandler = new BaeldungHandler(); - saxParser.parse("xml\\src\\main\\resources\\sax\\baeldung.xml", baeldungHandler); + saxParser.parse("xml/src/main/resources/sax/baeldung.xml", baeldungHandler); System.out.println(baeldungHandler.getWebsite()); } + @ToString public static class BaeldungHandler extends DefaultHandler { + private static final String ARTICLES = "articles"; + private static final String ARTICLE = "article"; + private static final String TITLE = "title"; + private static final String CONTENT = "content"; + private Baeldung website; private String elementValue; @@ -68,94 +75,16 @@ public class SaxParserMain { public Baeldung getWebsite() { return website; } - - @Override - public String toString() { - return "BaeldungHandler{" + - "website=" + website + - ", elementValue='" + elementValue + '\'' + - '}'; - } - - private static final String ARTICLES = "articles"; - private static final String ARTICLE = "article"; - private static final String TITLE = "title"; - private static final String CONTENT = "content"; } - + @Data public static class Baeldung { private List articleList; - - public List getArticleList() { - return articleList; - } - - public void setArticleList(List articleList) { - this.articleList = articleList; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Baeldung baeldung = (Baeldung) o; - return Objects.equals(articleList, baeldung.articleList); - } - - @Override - public int hashCode() { - return Objects.hash(articleList); - } - - @Override - public String toString() { - return "Baeldung{" + - "articleList=" + articleList + - '}'; - } } + @Data public static class BaeldungArticle { private String title; private String content; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - BaeldungArticle that = (BaeldungArticle) o; - return Objects.equals(title, that.title) && - Objects.equals(content, that.content); - } - - @Override - public int hashCode() { - return Objects.hash(title, content); - } - - @Override - public String toString() { - return "BaeldungArticle{" + - "title='" + title + '\'' + - ", content='" + content + '\'' + - '}'; - } } } From f82e007672f60178d1e3b4e5ba207536805f464b Mon Sep 17 00:00:00 2001 From: YassinHajaj Date: Fri, 6 Sep 2019 16:01:11 +0000 Subject: [PATCH 07/14] BAEL-3219 --- xml/pom.xml | 13 ++------ .../java/com/baeldung/sax/SaxParserMain.java | 32 ++++++++++++++++--- xml/src/main/resources/sax/baeldung.xml | 6 ++-- .../baeldung/sax/SaxParserMainUnitTest.java | 8 ++--- xml/src/test/resources/sax/baeldung.xml | 6 ++-- 5 files changed, 40 insertions(+), 25 deletions(-) diff --git a/xml/pom.xml b/xml/pom.xml index 3b8b88ba73..24969d1d6b 100644 --- a/xml/pom.xml +++ b/xml/pom.xml @@ -111,13 +111,6 @@ ${commons-lang.version} - - org.projectlombok - lombok - 1.18.8 - provided - - org.junit.jupiter junit-jupiter @@ -332,7 +325,7 @@ - maven-assembly-plugin @@ -352,9 +345,9 @@ - make-assembly - package attached diff --git a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java index 654d5162cd..5aba9409de 100644 --- a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java +++ b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java @@ -1,7 +1,5 @@ package com.baeldung.sax; -import lombok.Data; -import lombok.ToString; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; @@ -23,7 +21,7 @@ public class SaxParserMain { System.out.println(baeldungHandler.getWebsite()); } - @ToString + //@ToString public static class BaeldungHandler extends DefaultHandler { private static final String ARTICLES = "articles"; private static final String ARTICLE = "article"; @@ -77,14 +75,38 @@ public class SaxParserMain { } } - @Data + //@Data public static class Baeldung { private List articleList; + + public void setArticleList(List articleList) { + this.articleList = articleList; + } + + public List getArticleList() { + return this.articleList; + } } - @Data + //@Data public static class BaeldungArticle { private String title; private String content; + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return this.title; + } + + public void setContent(String content) { + this.content = content; + } + + public String getContent() { + return this.content; + } } } diff --git a/xml/src/main/resources/sax/baeldung.xml b/xml/src/main/resources/sax/baeldung.xml index 4b839f35c7..6736d5bdca 100644 --- a/xml/src/main/resources/sax/baeldung.xml +++ b/xml/src/main/resources/sax/baeldung.xml @@ -2,15 +2,15 @@
Parsing an XML File Using SAX Parser - Lorem ipsum... + SAX Parser's Lorem ipsum...
Parsing an XML File Using DOM Parser - Lorem ipsum... + DOM Parser's Lorem ipsum...
Parsing an XML File Using StAX Parser - Lorem ipsum... + StAX Parser's Lorem ipsum...
\ No newline at end of file diff --git a/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java index 8a8aa62dd2..333c5619c8 100644 --- a/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java +++ b/xml/src/test/java/com/baeldung/sax/SaxParserMainUnitTest.java @@ -14,7 +14,7 @@ import static org.junit.Assert.*; public class SaxParserMainUnitTest { @Test - public void parse_baeldung_xml_document() throws IOException, SAXException, ParserConfigurationException { + public void givenAProperXMLFile_whenItIsParsed_ThenAnObjectContainsAllItsElements() throws IOException, SAXException, ParserConfigurationException { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); @@ -31,14 +31,14 @@ public class SaxParserMainUnitTest { SaxParserMain.BaeldungArticle articleOne = articles.get(0); assertEquals("Parsing an XML File Using SAX Parser", articleOne.getTitle()); - assertEquals("Lorem ipsum...", articleOne.getContent()); + assertEquals("SAX Parser's Lorem ipsum...", articleOne.getContent()); SaxParserMain.BaeldungArticle articleTwo = articles.get(1); assertEquals("Parsing an XML File Using DOM Parser", articleTwo.getTitle()); - assertEquals("Lorem ipsum...", articleTwo.getContent()); + assertEquals("DOM Parser's Lorem ipsum...", articleTwo.getContent()); SaxParserMain.BaeldungArticle articleThree = articles.get(2); assertEquals("Parsing an XML File Using StAX Parser", articleThree.getTitle()); - assertEquals("Lorem ipsum...", articleThree.getContent()); + assertEquals("StAX Parser's Lorem ipsum...", articleThree.getContent()); } } diff --git a/xml/src/test/resources/sax/baeldung.xml b/xml/src/test/resources/sax/baeldung.xml index 4b839f35c7..6736d5bdca 100644 --- a/xml/src/test/resources/sax/baeldung.xml +++ b/xml/src/test/resources/sax/baeldung.xml @@ -2,15 +2,15 @@
Parsing an XML File Using SAX Parser - Lorem ipsum... + SAX Parser's Lorem ipsum...
Parsing an XML File Using DOM Parser - Lorem ipsum... + DOM Parser's Lorem ipsum...
Parsing an XML File Using StAX Parser - Lorem ipsum... + StAX Parser's Lorem ipsum...
\ No newline at end of file From d7107a5931a92570e7aa5be428e9e50ef0abf201 Mon Sep 17 00:00:00 2001 From: YassinHajaj Date: Sat, 28 Sep 2019 13:57:53 +0200 Subject: [PATCH 08/14] BAEL-3219 --- xml/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xml/pom.xml b/xml/pom.xml index 24969d1d6b..bbd607f9b5 100644 --- a/xml/pom.xml +++ b/xml/pom.xml @@ -325,7 +325,7 @@
- maven-assembly-plugin @@ -345,9 +345,9 @@ - make-assembly - package attached From 83535d53c8a94286ef1d023edc7d0936ddd32b64 Mon Sep 17 00:00:00 2001 From: "yassin.hajaj" Date: Sat, 28 Sep 2019 14:19:11 +0200 Subject: [PATCH 09/14] BAEL-3219 --- xml/src/main/java/com/baeldung/sax/SaxParserMain.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java index 5aba9409de..4908c10386 100644 --- a/xml/src/main/java/com/baeldung/sax/SaxParserMain.java +++ b/xml/src/main/java/com/baeldung/sax/SaxParserMain.java @@ -21,7 +21,6 @@ public class SaxParserMain { System.out.println(baeldungHandler.getWebsite()); } - //@ToString public static class BaeldungHandler extends DefaultHandler { private static final String ARTICLES = "articles"; private static final String ARTICLE = "article"; @@ -75,7 +74,6 @@ public class SaxParserMain { } } - //@Data public static class Baeldung { private List articleList; @@ -88,7 +86,6 @@ public class SaxParserMain { } } - //@Data public static class BaeldungArticle { private String title; private String content; From c5e7773a5151fdbfae81939f1bb7c4d81c50c565 Mon Sep 17 00:00:00 2001 From: Catalin Burcea Date: Sat, 28 Sep 2019 21:06:14 +0300 Subject: [PATCH 10/14] Split or move persistence-modules/java-jpa module (#7887) --- persistence-modules/java-jpa-2/README.md | 6 +- .../jpa/criteria}/CustomItemRepository.java | 22 ++- .../criteria}/CustomItemRepositoryImpl.java | 149 +++++++++--------- .../java/com/baeldung/jpa/criteria}/Item.java | 98 ++++++------ .../com/baeldung/jpa/defaultvalues/User.java | 0 .../jpa/defaultvalues/UserRepository.java | 0 .../com/baeldung/jpa/projections/Product.java | 0 .../jpa/projections/ProductRepository.java | 0 .../jpa/querytypes/QueryTypesExamples.java | 0 .../baeldung/jpa/querytypes/UserEntity.java | 0 .../main/resources/META-INF/persistence.xml | 87 ++++++++++ .../src/main}/resources/item.sql | 6 +- .../src/main/resources/products_jpa.sql | 0 .../CustomItemRepositoryIntegrationTest.java | 88 +++++------ .../UserDefaultValuesUnitTest.java | 0 .../HibernateProjectionsIntegrationTest.java | 0 .../ProductRepositoryIntegrationTest.java | 0 .../QueryTypesExamplesIntegrationTest.java | 0 .../src/test/resources/products.sql | 0 .../src/test/resources/users.sql | 0 persistence-modules/java-jpa/README.md | 8 +- .../convertdates}/LocalDateConverter.java | 2 +- .../baeldung/{util => jpa/entity}/Gender.java | 2 +- .../java/com/baeldung/jpa/entity/Student.java | 2 - .../jpa/{entity => primarykeys}/Account.java | 2 +- .../{entity => primarykeys}/AccountId.java | 2 +- .../jpa/{entity => primarykeys}/Book.java | 2 +- .../jpa/{entity => primarykeys}/BookId.java | 2 +- .../sqlresultsetmapping/Employee.java | 4 +- .../sqlresultsetmapping/ScheduledDay.java | 8 +- .../main/resources/META-INF/persistence.xml | 97 +----------- .../entity/StudentEntityIntegrationTest.java | 2 - .../CompositeKeysIntegrationTest.java | 6 +- .../SqlResultSetMappingUnitTest.java | 2 +- 34 files changed, 296 insertions(+), 301 deletions(-) rename persistence-modules/{java-jpa/src/main/java/com/baeldung/jpa/criteria/repository => java-jpa-2/src/main/java/com/baeldung/jpa/criteria}/CustomItemRepository.java (59%) rename persistence-modules/{java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/impl => java-jpa-2/src/main/java/com/baeldung/jpa/criteria}/CustomItemRepositoryImpl.java (91%) rename persistence-modules/{java-jpa/src/main/java/com/baeldung/jpa/criteria/entity => java-jpa-2/src/main/java/com/baeldung/jpa/criteria}/Item.java (89%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/java/com/baeldung/jpa/defaultvalues/User.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/java/com/baeldung/jpa/defaultvalues/UserRepository.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/java/com/baeldung/jpa/projections/Product.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/java/com/baeldung/jpa/projections/ProductRepository.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/java/com/baeldung/jpa/querytypes/QueryTypesExamples.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/java/com/baeldung/jpa/querytypes/UserEntity.java (100%) rename persistence-modules/{java-jpa/src/test => java-jpa-2/src/main}/resources/item.sql (74%) rename persistence-modules/{java-jpa => java-jpa-2}/src/main/resources/products_jpa.sql (100%) rename persistence-modules/{java-jpa/src/test/java/com/baeldung/jpa/criteria/repository/impl => java-jpa-2/src/test/java/com/baeldung/jpa/criteria}/CustomItemRepositoryIntegrationTest.java (86%) rename persistence-modules/{java-jpa => java-jpa-2}/src/test/java/com/baeldung/jpa/defaultvalues/UserDefaultValuesUnitTest.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/test/java/com/baeldung/jpa/projections/HibernateProjectionsIntegrationTest.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/test/java/com/baeldung/jpa/projections/ProductRepositoryIntegrationTest.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/test/java/com/baeldung/jpa/querytypes/QueryTypesExamplesIntegrationTest.java (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/test/resources/products.sql (100%) rename persistence-modules/{java-jpa => java-jpa-2}/src/test/resources/users.sql (100%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/{util => jpa/convertdates}/LocalDateConverter.java (94%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/{util => jpa/entity}/Gender.java (54%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/{entity => primarykeys}/Account.java (95%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/{entity => primarykeys}/AccountId.java (97%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/{entity => primarykeys}/Book.java (93%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/{entity => primarykeys}/BookId.java (97%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/{ => jpa}/sqlresultsetmapping/Employee.java (85%) rename persistence-modules/java-jpa/src/main/java/com/baeldung/{ => jpa}/sqlresultsetmapping/ScheduledDay.java (89%) rename persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/{entity => primarykeys}/CompositeKeysIntegrationTest.java (93%) rename persistence-modules/java-jpa/src/test/java/com/baeldung/{ => jpa}/sqlresultsetmapping/SqlResultSetMappingUnitTest.java (98%) diff --git a/persistence-modules/java-jpa-2/README.md b/persistence-modules/java-jpa-2/README.md index 579dcbdab0..0e1889c1fc 100644 --- a/persistence-modules/java-jpa-2/README.md +++ b/persistence-modules/java-jpa-2/README.md @@ -1,4 +1,8 @@ # Relevant Articles -- [JPA Query Parameters Usage](http://www.baeldung.com/jpa-query-parameters-usage) +- [JPA Query Parameters Usage](https://www.baeldung.com/jpa-query-parameters-usage) - [Mapping Entitiy Class Names to SQL Table Names with JPA](https://www.baeldung.com/jpa-entity-table-names) +- [Default Column Values in JPA](https://www.baeldung.com/jpa-default-column-values) +- [Types of JPA Queries](https://www.baeldung.com/jpa-queries) +- [JPA/Hibernate Projections](https://www.baeldung.com/jpa-hibernate-projections) +- [Combining JPA And/Or Criteria Predicates](https://www.baeldung.com/jpa-and-or-criteria-predicates) diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/CustomItemRepository.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/CustomItemRepository.java similarity index 59% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/CustomItemRepository.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/CustomItemRepository.java index c55dc4a592..c85ac53ac2 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/CustomItemRepository.java +++ b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/CustomItemRepository.java @@ -1,12 +1,10 @@ -package com.baeldung.jpa.criteria.repository; - -import java.util.List; - -import com.baeldung.jpa.criteria.entity.Item; - -public interface CustomItemRepository { - - List findItemsByColorAndGrade(); - - List findItemByColorOrGrade(); -} +package com.baeldung.jpa.criteria; + +import java.util.List; + +public interface CustomItemRepository { + + List findItemsByColorAndGrade(); + + List findItemByColorOrGrade(); +} diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/impl/CustomItemRepositoryImpl.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/CustomItemRepositoryImpl.java similarity index 91% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/impl/CustomItemRepositoryImpl.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/CustomItemRepositoryImpl.java index bf1d3eed0b..c64cd14ca5 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/repository/impl/CustomItemRepositoryImpl.java +++ b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/CustomItemRepositoryImpl.java @@ -1,77 +1,72 @@ -package com.baeldung.jpa.criteria.repository.impl; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - -import com.baeldung.jpa.criteria.entity.Item; -import com.baeldung.jpa.criteria.repository.CustomItemRepository; - -public class CustomItemRepositoryImpl implements CustomItemRepository { - - private EntityManager entityManager; - - public CustomItemRepositoryImpl() { - super(); - EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa-h2-criteria"); - entityManager = factory.createEntityManager(); - } - - @Override - public List findItemsByColorAndGrade() { - - CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); - CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Item.class); - Root itemRoot = criteriaQuery.from(Item.class); - - Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "blue"); - Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "red"); - Predicate predicateForColor = criteriaBuilder.or(predicateForBlueColor, predicateForRedColor); - - Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "A"); - Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B"); - Predicate predicateForGrade = criteriaBuilder.or(predicateForGradeA, predicateForGradeB); - - // final search filter - Predicate finalPredicate = criteriaBuilder.and(predicateForColor, predicateForGrade); - - criteriaQuery.where(finalPredicate); - - List items = entityManager.createQuery(criteriaQuery) - .getResultList(); - return items; - } - - @Override - public List findItemByColorOrGrade() { - - CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); - CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Item.class); - Root itemRoot = criteriaQuery.from(Item.class); - - Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "red"); - Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "D"); - Predicate predicateForBlueColorAndGradeA = criteriaBuilder.and(predicateForBlueColor, predicateForGradeA); - - Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "blue"); - Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B"); - Predicate predicateForRedColorAndGradeB = criteriaBuilder.and(predicateForRedColor, predicateForGradeB); - - // final search filter - Predicate finalPredicate = criteriaBuilder.or(predicateForBlueColorAndGradeA, predicateForRedColorAndGradeB); - - criteriaQuery.where(finalPredicate); - - List items = entityManager.createQuery(criteriaQuery) - .getResultList(); - return items; - } -} +package com.baeldung.jpa.criteria; + +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + +public class CustomItemRepositoryImpl implements CustomItemRepository { + + private EntityManager entityManager; + + public CustomItemRepositoryImpl() { + super(); + EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa-h2-criteria"); + entityManager = factory.createEntityManager(); + } + + @Override + public List findItemsByColorAndGrade() { + + CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); + CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Item.class); + Root itemRoot = criteriaQuery.from(Item.class); + + Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "blue"); + Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "red"); + Predicate predicateForColor = criteriaBuilder.or(predicateForBlueColor, predicateForRedColor); + + Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "A"); + Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B"); + Predicate predicateForGrade = criteriaBuilder.or(predicateForGradeA, predicateForGradeB); + + // final search filter + Predicate finalPredicate = criteriaBuilder.and(predicateForColor, predicateForGrade); + + criteriaQuery.where(finalPredicate); + + List items = entityManager.createQuery(criteriaQuery) + .getResultList(); + return items; + } + + @Override + public List findItemByColorOrGrade() { + + CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); + CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Item.class); + Root itemRoot = criteriaQuery.from(Item.class); + + Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "red"); + Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "D"); + Predicate predicateForBlueColorAndGradeA = criteriaBuilder.and(predicateForBlueColor, predicateForGradeA); + + Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "blue"); + Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B"); + Predicate predicateForRedColorAndGradeB = criteriaBuilder.and(predicateForRedColor, predicateForGradeB); + + // final search filter + Predicate finalPredicate = criteriaBuilder.or(predicateForBlueColorAndGradeA, predicateForRedColorAndGradeB); + + criteriaQuery.where(finalPredicate); + + List items = entityManager.createQuery(criteriaQuery) + .getResultList(); + return items; + } +} diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/entity/Item.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/Item.java similarity index 89% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/entity/Item.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/Item.java index 64ef46f265..f6093e5735 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/criteria/entity/Item.java +++ b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/criteria/Item.java @@ -1,49 +1,49 @@ -package com.baeldung.jpa.criteria.entity; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "item") -@Entity -public class Item { - - @Id - private Long id; - private String color; - private String grade; - private String name; - - public String getColor() { - return color; - } - - public String getGrade() { - return grade; - } - - public Long getId() { - return id; - } - - public String getName() { - return name; - } - - public void setColor(String color) { - this.color = color; - } - - public void setGrade(String grade) { - this.grade = grade; - } - - public void setId(Long id) { - this.id = id; - } - - public void setName(String name) { - this.name = name; - } - -} +package com.baeldung.jpa.criteria; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Table(name = "item") +@Entity +public class Item { + + @Id + private Long id; + private String color; + private String grade; + private String name; + + public String getColor() { + return color; + } + + public String getGrade() { + return grade; + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public void setColor(String color) { + this.color = color; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/defaultvalues/User.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/defaultvalues/User.java similarity index 100% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/defaultvalues/User.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/defaultvalues/User.java diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/defaultvalues/UserRepository.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/defaultvalues/UserRepository.java similarity index 100% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/defaultvalues/UserRepository.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/defaultvalues/UserRepository.java diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/projections/Product.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/projections/Product.java similarity index 100% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/projections/Product.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/projections/Product.java diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/projections/ProductRepository.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/projections/ProductRepository.java similarity index 100% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/projections/ProductRepository.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/projections/ProductRepository.java diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/querytypes/QueryTypesExamples.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/querytypes/QueryTypesExamples.java similarity index 100% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/querytypes/QueryTypesExamples.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/querytypes/QueryTypesExamples.java diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/querytypes/UserEntity.java b/persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/querytypes/UserEntity.java similarity index 100% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/querytypes/UserEntity.java rename to persistence-modules/java-jpa-2/src/main/java/com/baeldung/jpa/querytypes/UserEntity.java diff --git a/persistence-modules/java-jpa-2/src/main/resources/META-INF/persistence.xml b/persistence-modules/java-jpa-2/src/main/resources/META-INF/persistence.xml index 560a75070c..62d7ce0f5e 100644 --- a/persistence-modules/java-jpa-2/src/main/resources/META-INF/persistence.xml +++ b/persistence-modules/java-jpa-2/src/main/resources/META-INF/persistence.xml @@ -32,4 +32,91 @@ value="queryparams.sql" /> + + + org.hibernate.jpa.HibernatePersistenceProvider + com.baeldung.jpa.defaultvalues.User + true + + + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + com.baeldung.jpa.querytypes.UserEntity + true + + + + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + com.baeldung.jpa.projections.Product + true + + + + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + com.baeldung.jpa.criteria.Item + true + + + + + + + + + + + + + \ No newline at end of file diff --git a/persistence-modules/java-jpa/src/test/resources/item.sql b/persistence-modules/java-jpa-2/src/main/resources/item.sql similarity index 74% rename from persistence-modules/java-jpa/src/test/resources/item.sql rename to persistence-modules/java-jpa-2/src/main/resources/item.sql index faf50f6829..871dcee017 100644 --- a/persistence-modules/java-jpa/src/test/resources/item.sql +++ b/persistence-modules/java-jpa-2/src/main/resources/item.sql @@ -1,4 +1,4 @@ -insert into item(id,grade,color) values (10,'C','blue'); -insert into item(id,grade,color) values (11,'C','red'); -insert into item(id,grade,color) values (12,'A','blue'); +insert into item(id,grade,color) values (10,'C','blue'); +insert into item(id,grade,color) values (11,'C','red'); +insert into item(id,grade,color) values (12,'A','blue'); insert into item(id,grade,color) values (13,'D','red'); \ No newline at end of file diff --git a/persistence-modules/java-jpa/src/main/resources/products_jpa.sql b/persistence-modules/java-jpa-2/src/main/resources/products_jpa.sql similarity index 100% rename from persistence-modules/java-jpa/src/main/resources/products_jpa.sql rename to persistence-modules/java-jpa-2/src/main/resources/products_jpa.sql diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/criteria/repository/impl/CustomItemRepositoryIntegrationTest.java b/persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/criteria/CustomItemRepositoryIntegrationTest.java similarity index 86% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/criteria/repository/impl/CustomItemRepositoryIntegrationTest.java rename to persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/criteria/CustomItemRepositoryIntegrationTest.java index 169fb44618..8d6bf3c4a7 100644 --- a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/criteria/repository/impl/CustomItemRepositoryIntegrationTest.java +++ b/persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/criteria/CustomItemRepositoryIntegrationTest.java @@ -1,44 +1,44 @@ -package com.baeldung.jpa.criteria.repository.impl; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - -import java.util.List; - -import org.junit.Test; - -import com.baeldung.jpa.criteria.entity.Item; -import com.baeldung.jpa.criteria.repository.CustomItemRepository; - -public class CustomItemRepositoryIntegrationTest { - - CustomItemRepository customItemRepository = new CustomItemRepositoryImpl(); - - @Test - public void givenItems_whenFindItemsByColorAndGrade_thenReturnItems() { - - List items = customItemRepository.findItemsByColorAndGrade(); - - assertFalse("No items found", items.isEmpty()); - assertEquals("There should be only one item", 1, items.size()); - - Item item = items.get(0); - - assertEquals("this item do not have blue color", "blue", item.getColor()); - assertEquals("this item does not belong to A grade", "A", item.getGrade()); - } - - @Test - public void givenItems_whenFindItemByColorOrGrade_thenReturnItems() { - - List items = customItemRepository.findItemByColorOrGrade(); - - assertFalse("No items found", items.isEmpty()); - assertEquals("There should be only one item", 1, items.size()); - - Item item = items.get(0); - - assertEquals("this item do not have red color", "red", item.getColor()); - assertEquals("this item does not belong to D grade", "D", item.getGrade()); - } -} +package com.baeldung.jpa.criteria; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +import java.util.List; + +import org.junit.Test; + +import com.baeldung.jpa.criteria.Item; +import com.baeldung.jpa.criteria.CustomItemRepository; + +public class CustomItemRepositoryIntegrationTest { + + CustomItemRepository customItemRepository = new CustomItemRepositoryImpl(); + + @Test + public void givenItems_whenFindItemsByColorAndGrade_thenReturnItems() { + + List items = customItemRepository.findItemsByColorAndGrade(); + + assertFalse("No items found", items.isEmpty()); + assertEquals("There should be only one item", 1, items.size()); + + Item item = items.get(0); + + assertEquals("this item do not have blue color", "blue", item.getColor()); + assertEquals("this item does not belong to A grade", "A", item.getGrade()); + } + + @Test + public void givenItems_whenFindItemByColorOrGrade_thenReturnItems() { + + List items = customItemRepository.findItemByColorOrGrade(); + + assertFalse("No items found", items.isEmpty()); + assertEquals("There should be only one item", 1, items.size()); + + Item item = items.get(0); + + assertEquals("this item do not have red color", "red", item.getColor()); + assertEquals("this item does not belong to D grade", "D", item.getGrade()); + } +} diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/defaultvalues/UserDefaultValuesUnitTest.java b/persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/defaultvalues/UserDefaultValuesUnitTest.java similarity index 100% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/defaultvalues/UserDefaultValuesUnitTest.java rename to persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/defaultvalues/UserDefaultValuesUnitTest.java diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/projections/HibernateProjectionsIntegrationTest.java b/persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/projections/HibernateProjectionsIntegrationTest.java similarity index 100% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/projections/HibernateProjectionsIntegrationTest.java rename to persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/projections/HibernateProjectionsIntegrationTest.java diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/projections/ProductRepositoryIntegrationTest.java b/persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/projections/ProductRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/projections/ProductRepositoryIntegrationTest.java rename to persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/projections/ProductRepositoryIntegrationTest.java diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/querytypes/QueryTypesExamplesIntegrationTest.java b/persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/querytypes/QueryTypesExamplesIntegrationTest.java similarity index 100% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/querytypes/QueryTypesExamplesIntegrationTest.java rename to persistence-modules/java-jpa-2/src/test/java/com/baeldung/jpa/querytypes/QueryTypesExamplesIntegrationTest.java diff --git a/persistence-modules/java-jpa/src/test/resources/products.sql b/persistence-modules/java-jpa-2/src/test/resources/products.sql similarity index 100% rename from persistence-modules/java-jpa/src/test/resources/products.sql rename to persistence-modules/java-jpa-2/src/test/resources/products.sql diff --git a/persistence-modules/java-jpa/src/test/resources/users.sql b/persistence-modules/java-jpa-2/src/test/resources/users.sql similarity index 100% rename from persistence-modules/java-jpa/src/test/resources/users.sql rename to persistence-modules/java-jpa-2/src/test/resources/users.sql diff --git a/persistence-modules/java-jpa/README.md b/persistence-modules/java-jpa/README.md index 5a99217f45..670203f10d 100644 --- a/persistence-modules/java-jpa/README.md +++ b/persistence-modules/java-jpa/README.md @@ -1,16 +1,12 @@ # Relevant Articles -- [A Guide to SqlResultSetMapping](http://www.baeldung.com/jpa-sql-resultset-mapping) -- [A Guide to Stored Procedures with JPA](http://www.baeldung.com/jpa-stored-procedures) +- [A Guide to SqlResultSetMapping](https://www.baeldung.com/jpa-sql-resultset-mapping) +- [A Guide to Stored Procedures with JPA](https://www.baeldung.com/jpa-stored-procedures) - [Fixing the JPA error “java.lang.String cannot be cast to Ljava.lang.String;”](https://www.baeldung.com/jpa-error-java-lang-string-cannot-be-cast) - [JPA Entity Graph](https://www.baeldung.com/jpa-entity-graph) - [JPA 2.2 Support for Java 8 Date/Time Types](https://www.baeldung.com/jpa-java-time) - [Converting Between LocalDate and SQL Date](https://www.baeldung.com/java-convert-localdate-sql-date) -- [Combining JPA And/Or Criteria Predicates](https://www.baeldung.com/jpa-and-or-criteria-predicates) -- [Types of JPA Queries](https://www.baeldung.com/jpa-queries) -- [JPA/Hibernate Projections](https://www.baeldung.com/jpa-hibernate-projections) - [Composite Primary Keys in JPA](https://www.baeldung.com/jpa-composite-primary-keys) - [Defining JPA Entities](https://www.baeldung.com/jpa-entities) - [JPA @Basic Annotation](https://www.baeldung.com/jpa-basic-annotation) -- [Default Column Values in JPA](https://www.baeldung.com/jpa-default-column-values) - [Persisting Enums in JPA](https://www.baeldung.com/jpa-persisting-enums-in-jpa) diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/util/LocalDateConverter.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/convertdates/LocalDateConverter.java similarity index 94% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/util/LocalDateConverter.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/convertdates/LocalDateConverter.java index 00fd378b05..de6ada2361 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/util/LocalDateConverter.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/convertdates/LocalDateConverter.java @@ -1,4 +1,4 @@ -package com.baeldung.util; +package com.baeldung.jpa.convertdates; import javax.persistence.AttributeConverter; import javax.persistence.Converter; diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/util/Gender.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Gender.java similarity index 54% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/util/Gender.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Gender.java index 13f08d995c..8f808f539d 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/util/Gender.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Gender.java @@ -1,4 +1,4 @@ -package com.baeldung.util; +package com.baeldung.jpa.entity; public enum Gender { MALE, diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Student.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Student.java index 531bae40c5..64e7ab586c 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Student.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Student.java @@ -14,8 +14,6 @@ import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; -import com.baeldung.util.Gender; - @Entity @Table(name="STUDENT") public class Student { diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Account.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/Account.java similarity index 95% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Account.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/Account.java index 48a98512fa..915c605e65 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Account.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/Account.java @@ -1,4 +1,4 @@ -package com.baeldung.jpa.entity; +package com.baeldung.jpa.primarykeys; import javax.persistence.Entity; import javax.persistence.Id; diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/AccountId.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/AccountId.java similarity index 97% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/AccountId.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/AccountId.java index 091c326367..1e8a06be63 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/AccountId.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/AccountId.java @@ -1,4 +1,4 @@ -package com.baeldung.jpa.entity; +package com.baeldung.jpa.primarykeys; import java.io.Serializable; diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Book.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/Book.java similarity index 93% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Book.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/Book.java index 460f302e28..a84eb3ef01 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/Book.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/Book.java @@ -1,4 +1,4 @@ -package com.baeldung.jpa.entity; +package com.baeldung.jpa.primarykeys; import javax.persistence.EmbeddedId; import javax.persistence.Entity; diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/BookId.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/BookId.java similarity index 97% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/BookId.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/BookId.java index ff587beaf2..d8c925c148 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/entity/BookId.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/primarykeys/BookId.java @@ -1,4 +1,4 @@ -package com.baeldung.jpa.entity; +package com.baeldung.jpa.primarykeys; import java.io.Serializable; diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/sqlresultsetmapping/Employee.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/sqlresultsetmapping/Employee.java similarity index 85% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/sqlresultsetmapping/Employee.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/sqlresultsetmapping/Employee.java index bec1b8845a..b62a21d481 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/sqlresultsetmapping/Employee.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/sqlresultsetmapping/Employee.java @@ -1,4 +1,4 @@ -package com.baeldung.sqlresultsetmapping; +package com.baeldung.jpa.sqlresultsetmapping; import javax.persistence.*; @@ -7,7 +7,7 @@ import javax.persistence.*; name="EmployeeResult", entities={ @EntityResult( - entityClass = com.baeldung.sqlresultsetmapping.Employee.class, + entityClass = com.baeldung.jpa.sqlresultsetmapping.Employee.class, fields={@FieldResult(name="id",column="employeeNumber"), @FieldResult(name="name", column="name")} ) diff --git a/persistence-modules/java-jpa/src/main/java/com/baeldung/sqlresultsetmapping/ScheduledDay.java b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/sqlresultsetmapping/ScheduledDay.java similarity index 89% rename from persistence-modules/java-jpa/src/main/java/com/baeldung/sqlresultsetmapping/ScheduledDay.java rename to persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/sqlresultsetmapping/ScheduledDay.java index 7e332bc67a..a7ca59ab3f 100644 --- a/persistence-modules/java-jpa/src/main/java/com/baeldung/sqlresultsetmapping/ScheduledDay.java +++ b/persistence-modules/java-jpa/src/main/java/com/baeldung/jpa/sqlresultsetmapping/ScheduledDay.java @@ -1,18 +1,18 @@ -package com.baeldung.sqlresultsetmapping; +package com.baeldung.jpa.sqlresultsetmapping; import javax.persistence.*; @SqlResultSetMappings(value = { @SqlResultSetMapping(name = "ScheduleResult", - classes = { @ConstructorResult(targetClass = com.baeldung.sqlresultsetmapping.ScheduledDay.class, + classes = { @ConstructorResult(targetClass = com.baeldung.jpa.sqlresultsetmapping.ScheduledDay.class, columns = { @ColumnResult(name = "id", type = Long.class), @ColumnResult(name = "employeeId", type = Long.class), @ColumnResult(name = "dayOfWeek") }) }), @SqlResultSetMapping(name = "FridayEmployeeResult", columns = { @ColumnResult(name = "employeeId") }), @SqlResultSetMapping(name = "EmployeeScheduleResults", - entities = { @EntityResult(entityClass = com.baeldung.sqlresultsetmapping.Employee.class), - @EntityResult(entityClass = com.baeldung.sqlresultsetmapping.ScheduledDay.class) + entities = { @EntityResult(entityClass = com.baeldung.jpa.sqlresultsetmapping.Employee.class), + @EntityResult(entityClass = com.baeldung.jpa.sqlresultsetmapping.ScheduledDay.class) }) }) @NamedNativeQuery(name = "FridayEmployees", query = "SELECT employeeId FROM schedule_days WHERE dayOfWeek = 'FRIDAY'", diff --git a/persistence-modules/java-jpa/src/main/resources/META-INF/persistence.xml b/persistence-modules/java-jpa/src/main/resources/META-INF/persistence.xml index 1f16bee3ba..b780a6f569 100644 --- a/persistence-modules/java-jpa/src/main/resources/META-INF/persistence.xml +++ b/persistence-modules/java-jpa/src/main/resources/META-INF/persistence.xml @@ -7,8 +7,8 @@ org.hibernate.jpa.HibernatePersistenceProvider - com.baeldung.sqlresultsetmapping.ScheduledDay - com.baeldung.sqlresultsetmapping.Employee + com.baeldung.jpa.sqlresultsetmapping.ScheduledDay + com.baeldung.jpa.sqlresultsetmapping.Employee com.baeldung.jpa.basicannotation.Course true @@ -115,77 +115,13 @@ - - org.hibernate.jpa.HibernatePersistenceProvider - com.baeldung.jpa.criteria.entity.Item - true - - - - - - - - - - - - - - - org.hibernate.jpa.HibernatePersistenceProvider - com.baeldung.jpa.querytypes.UserEntity - true - - - - - - - - - - - - - - - org.hibernate.jpa.HibernatePersistenceProvider - com.baeldung.jpa.defaultvalues.User - true - - - - - - - - - - - - org.hibernate.jpa.HibernatePersistenceProvider com.baeldung.jpa.entity.Student - com.baeldung.jpa.entity.Book - com.baeldung.jpa.entity.BookId - com.baeldung.jpa.entity.Account - com.baeldung.jpa.entity.AccountId + com.baeldung.jpa.primarykeys.Book + com.baeldung.jpa.primarykeys.BookId + com.baeldung.jpa.primarykeys.Account + com.baeldung.jpa.primarykeys.AccountId true - - org.hibernate.jpa.HibernatePersistenceProvider - com.baeldung.jpa.projections.Product - true - - - - - - - - - - - - \ No newline at end of file diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/StudentEntityIntegrationTest.java b/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/StudentEntityIntegrationTest.java index fdaaba5439..3c7a82edc3 100644 --- a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/StudentEntityIntegrationTest.java +++ b/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/StudentEntityIntegrationTest.java @@ -16,8 +16,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import com.baeldung.util.Gender; - public class StudentEntityIntegrationTest { private EntityManagerFactory emf; diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/CompositeKeysIntegrationTest.java b/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/primarykeys/CompositeKeysIntegrationTest.java similarity index 93% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/CompositeKeysIntegrationTest.java rename to persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/primarykeys/CompositeKeysIntegrationTest.java index 2d30ebab5e..be529ab81c 100644 --- a/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/entity/CompositeKeysIntegrationTest.java +++ b/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/primarykeys/CompositeKeysIntegrationTest.java @@ -1,4 +1,4 @@ -package com.baeldung.jpa.entity; +package com.baeldung.jpa.primarykeys; import static org.junit.Assert.assertNotNull; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -7,6 +7,10 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; +import com.baeldung.jpa.primarykeys.Account; +import com.baeldung.jpa.primarykeys.AccountId; +import com.baeldung.jpa.primarykeys.Book; +import com.baeldung.jpa.primarykeys.BookId; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; diff --git a/persistence-modules/java-jpa/src/test/java/com/baeldung/sqlresultsetmapping/SqlResultSetMappingUnitTest.java b/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/sqlresultsetmapping/SqlResultSetMappingUnitTest.java similarity index 98% rename from persistence-modules/java-jpa/src/test/java/com/baeldung/sqlresultsetmapping/SqlResultSetMappingUnitTest.java rename to persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/sqlresultsetmapping/SqlResultSetMappingUnitTest.java index 4e01095278..f318df3747 100644 --- a/persistence-modules/java-jpa/src/test/java/com/baeldung/sqlresultsetmapping/SqlResultSetMappingUnitTest.java +++ b/persistence-modules/java-jpa/src/test/java/com/baeldung/jpa/sqlresultsetmapping/SqlResultSetMappingUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.sqlresultsetmapping; +package com.baeldung.jpa.sqlresultsetmapping; import static org.junit.Assert.*; From 85a4c72414e7c0171b624ebd3f5a005e0643b1b4 Mon Sep 17 00:00:00 2001 From: Amit Pandey Date: Sat, 28 Sep 2019 23:43:11 +0530 Subject: [PATCH 11/14] [BAEL-16672] - Re-organize maven module (#7703) * [BAEL-16672] - Re-organize maven module * [BAEL-16672] - Added missed modules in main pom * [BAEL-16672] - Added commented compiler-plugin-java-9 module in main pom.xml --- maven-all/README.md | 3 + maven-all/compiler-plugin-java-9/README.md | 3 + .../compiler-plugin-java-9/pom.xml | 0 .../maven/java9/MavenCompilerPlugin.java | 0 .../src/main/java/module-info.java | 0 maven-all/maven-war-plugin/README.md | 3 + {maven => maven-all}/maven-war-plugin/pom.xml | 56 +++++++++--------- {maven => maven-all/maven}/.gitignore | 0 {maven => maven-all/maven}/README.md | 5 -- .../maven}/custom-rule/pom.xml | 0 .../com/baeldung/enforcer/MyCustomRule.java | 0 .../maven}/input-resources/baeldung.png | Bin .../maven}/input-resources/baeldung.txt | 0 .../maven}/input-resources/verifications.xml | 0 maven-all/maven/maven-enforcer/README.md | 3 + .../maven}/maven-enforcer/pom.xml | 0 {maven => maven-all/maven}/pom.xml | 1 + .../com/baeldung/maven/it/RestITCase.java | 0 .../com/baeldung/maven/plugins/Foo.java | 0 .../com/baeldung/maven/it/EndpointConfig.java | 0 .../com/baeldung/maven/it/RestEndpoint.java | 0 .../java/com/baeldung/maven/plugins/Data.java | 0 .../maven/plugins/MultipleSrcFolders.java | 0 .../maven}/src/main/resources/logback.xml | 0 .../maven}/src/main/webapp/WEB-INF/web.xml | 0 .../com/baeldung/maven/it/Integration.java | 0 .../java/com/baeldung/maven/it/RestIT.java | 0 .../maven/it/RestIntegrationTest.java | 0 .../com/baeldung/maven/it/RestJUnitTest.java | 0 .../com/baeldung/maven/plugins/DataCheck.java | 0 .../baeldung/maven/plugins/DataUnitTest.java | 0 .../src/test/java/testfail/TestFail.java | 0 maven-all/profiles/README.md | 3 + {maven => maven-all}/profiles/pom.xml | 0 maven-all/versions-maven-plugin/README.md | 3 + .../versions-maven-plugin/original/pom.xml | 0 .../versions-maven-plugin/pom.xml | 2 +- .../versions-maven-plugin/run-the-demo.sh | 0 pom.xml | 12 +++- 39 files changed, 58 insertions(+), 36 deletions(-) create mode 100644 maven-all/README.md create mode 100644 maven-all/compiler-plugin-java-9/README.md rename {maven => maven-all}/compiler-plugin-java-9/pom.xml (100%) rename {maven => maven-all}/compiler-plugin-java-9/src/main/java/com/baeldung/maven/java9/MavenCompilerPlugin.java (100%) rename {maven => maven-all}/compiler-plugin-java-9/src/main/java/module-info.java (100%) create mode 100644 maven-all/maven-war-plugin/README.md rename {maven => maven-all}/maven-war-plugin/pom.xml (88%) rename {maven => maven-all/maven}/.gitignore (100%) rename {maven => maven-all/maven}/README.md (70%) rename {maven => maven-all/maven}/custom-rule/pom.xml (100%) rename {maven => maven-all/maven}/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java (100%) rename {maven => maven-all/maven}/input-resources/baeldung.png (100%) rename {maven => maven-all/maven}/input-resources/baeldung.txt (100%) rename {maven => maven-all/maven}/input-resources/verifications.xml (100%) create mode 100644 maven-all/maven/maven-enforcer/README.md rename {maven => maven-all/maven}/maven-enforcer/pom.xml (100%) rename {maven => maven-all/maven}/pom.xml (99%) rename {maven => maven-all/maven}/src/integration-test/java/com/baeldung/maven/it/RestITCase.java (100%) rename {maven => maven-all/maven}/src/main/another-src/com/baeldung/maven/plugins/Foo.java (100%) rename {maven => maven-all/maven}/src/main/java/com/baeldung/maven/it/EndpointConfig.java (100%) rename {maven => maven-all/maven}/src/main/java/com/baeldung/maven/it/RestEndpoint.java (100%) rename {maven => maven-all/maven}/src/main/java/com/baeldung/maven/plugins/Data.java (100%) rename {maven => maven-all/maven}/src/main/java/com/baeldung/maven/plugins/MultipleSrcFolders.java (100%) rename {maven => maven-all/maven}/src/main/resources/logback.xml (100%) rename {maven => maven-all/maven}/src/main/webapp/WEB-INF/web.xml (100%) rename {maven => maven-all/maven}/src/test/java/com/baeldung/maven/it/Integration.java (100%) rename {maven => maven-all/maven}/src/test/java/com/baeldung/maven/it/RestIT.java (100%) rename {maven => maven-all/maven}/src/test/java/com/baeldung/maven/it/RestIntegrationTest.java (100%) rename {maven => maven-all/maven}/src/test/java/com/baeldung/maven/it/RestJUnitTest.java (100%) rename {maven => maven-all/maven}/src/test/java/com/baeldung/maven/plugins/DataCheck.java (100%) rename {maven => maven-all/maven}/src/test/java/com/baeldung/maven/plugins/DataUnitTest.java (100%) rename {maven => maven-all/maven}/src/test/java/testfail/TestFail.java (100%) create mode 100644 maven-all/profiles/README.md rename {maven => maven-all}/profiles/pom.xml (100%) create mode 100644 maven-all/versions-maven-plugin/README.md rename {maven => maven-all}/versions-maven-plugin/original/pom.xml (100%) rename {maven => maven-all}/versions-maven-plugin/pom.xml (97%) rename {maven => maven-all}/versions-maven-plugin/run-the-demo.sh (100%) mode change 100755 => 100644 diff --git a/maven-all/README.md b/maven-all/README.md new file mode 100644 index 0000000000..d014f323d2 --- /dev/null +++ b/maven-all/README.md @@ -0,0 +1,3 @@ +### Relevant Articles + +- [Apache Maven Tutorial](https://www.baeldung.com/maven) \ No newline at end of file diff --git a/maven-all/compiler-plugin-java-9/README.md b/maven-all/compiler-plugin-java-9/README.md new file mode 100644 index 0000000000..d0b7b72acc --- /dev/null +++ b/maven-all/compiler-plugin-java-9/README.md @@ -0,0 +1,3 @@ +### Relevant Articles + +- [Maven Compiler Plugin](http://www.baeldung.com/maven-compiler-plugin) \ No newline at end of file diff --git a/maven/compiler-plugin-java-9/pom.xml b/maven-all/compiler-plugin-java-9/pom.xml similarity index 100% rename from maven/compiler-plugin-java-9/pom.xml rename to maven-all/compiler-plugin-java-9/pom.xml diff --git a/maven/compiler-plugin-java-9/src/main/java/com/baeldung/maven/java9/MavenCompilerPlugin.java b/maven-all/compiler-plugin-java-9/src/main/java/com/baeldung/maven/java9/MavenCompilerPlugin.java similarity index 100% rename from maven/compiler-plugin-java-9/src/main/java/com/baeldung/maven/java9/MavenCompilerPlugin.java rename to maven-all/compiler-plugin-java-9/src/main/java/com/baeldung/maven/java9/MavenCompilerPlugin.java diff --git a/maven/compiler-plugin-java-9/src/main/java/module-info.java b/maven-all/compiler-plugin-java-9/src/main/java/module-info.java similarity index 100% rename from maven/compiler-plugin-java-9/src/main/java/module-info.java rename to maven-all/compiler-plugin-java-9/src/main/java/module-info.java diff --git a/maven-all/maven-war-plugin/README.md b/maven-all/maven-war-plugin/README.md new file mode 100644 index 0000000000..d559fea80b --- /dev/null +++ b/maven-all/maven-war-plugin/README.md @@ -0,0 +1,3 @@ +### Relevant Articles + +- [Eclipse Error: web.xml is missing and failOnMissingWebXml is set to true](https://www.baeldung.com/eclipse-error-web-xml-missing) \ No newline at end of file diff --git a/maven/maven-war-plugin/pom.xml b/maven-all/maven-war-plugin/pom.xml similarity index 88% rename from maven/maven-war-plugin/pom.xml rename to maven-all/maven-war-plugin/pom.xml index 517c08978f..25c2e1ba1b 100644 --- a/maven/maven-war-plugin/pom.xml +++ b/maven-all/maven-war-plugin/pom.xml @@ -1,29 +1,29 @@ - - 4.0.0 - com.baeldung - maven-war-plugin-property - 0.0.1-SNAPSHOT - war - maven-war-plugin-property - - - - - maven-war-plugin - - 3.1.0 - - - false - - - - - - - - false - + + 4.0.0 + com.baeldung + maven-war-plugin + 0.0.1-SNAPSHOT + war + maven-war-plugin + + + + + maven-war-plugin + + 3.1.0 + + + false + + + + + + + + false + \ No newline at end of file diff --git a/maven/.gitignore b/maven-all/maven/.gitignore similarity index 100% rename from maven/.gitignore rename to maven-all/maven/.gitignore diff --git a/maven/README.md b/maven-all/maven/README.md similarity index 70% rename from maven/README.md rename to maven-all/maven/README.md index 6d1a7081b7..abe7fc4a80 100644 --- a/maven/README.md +++ b/maven-all/maven/README.md @@ -11,9 +11,4 @@ - [Maven Project with Multiple Source Directories](https://www.baeldung.com/maven-project-multiple-src-directories) - [Integration Testing with Maven](https://www.baeldung.com/maven-integration-test) - [Apache Maven Standard Directory Layout](https://www.baeldung.com/maven-directory-structure) -- [Apache Maven Tutorial](https://www.baeldung.com/maven) -- [Use the Latest Version of a Dependency in Maven](https://www.baeldung.com/maven-dependency-latest-version) - [Multi-Module Project with Maven](https://www.baeldung.com/maven-multi-module) -- [Maven Enforcer Plugin](https://www.baeldung.com/maven-enforcer-plugin) -- [Eclipse Error: web.xml is missing and failOnMissingWebXml is set to true](https://www.baeldung.com/eclipse-error-web-xml-missing) -- [Guide to Maven Profiles](https://www.baeldung.com/maven-profiles) diff --git a/maven/custom-rule/pom.xml b/maven-all/maven/custom-rule/pom.xml similarity index 100% rename from maven/custom-rule/pom.xml rename to maven-all/maven/custom-rule/pom.xml diff --git a/maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java b/maven-all/maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java similarity index 100% rename from maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java rename to maven-all/maven/custom-rule/src/main/java/com/baeldung/enforcer/MyCustomRule.java diff --git a/maven/input-resources/baeldung.png b/maven-all/maven/input-resources/baeldung.png similarity index 100% rename from maven/input-resources/baeldung.png rename to maven-all/maven/input-resources/baeldung.png diff --git a/maven/input-resources/baeldung.txt b/maven-all/maven/input-resources/baeldung.txt similarity index 100% rename from maven/input-resources/baeldung.txt rename to maven-all/maven/input-resources/baeldung.txt diff --git a/maven/input-resources/verifications.xml b/maven-all/maven/input-resources/verifications.xml similarity index 100% rename from maven/input-resources/verifications.xml rename to maven-all/maven/input-resources/verifications.xml diff --git a/maven-all/maven/maven-enforcer/README.md b/maven-all/maven/maven-enforcer/README.md new file mode 100644 index 0000000000..7515647a3d --- /dev/null +++ b/maven-all/maven/maven-enforcer/README.md @@ -0,0 +1,3 @@ +### Relevant Articles + +- [Maven Enforcer Plugin](https://www.baeldung.com/maven-enforcer-plugin) \ No newline at end of file diff --git a/maven/maven-enforcer/pom.xml b/maven-all/maven/maven-enforcer/pom.xml similarity index 100% rename from maven/maven-enforcer/pom.xml rename to maven-all/maven/maven-enforcer/pom.xml diff --git a/maven/pom.xml b/maven-all/maven/pom.xml similarity index 99% rename from maven/pom.xml rename to maven-all/maven/pom.xml index ef6e7b7d93..d34be04fcf 100644 --- a/maven/pom.xml +++ b/maven-all/maven/pom.xml @@ -11,6 +11,7 @@ parent-modules com.baeldung 1.0.0-SNAPSHOT + ../.. diff --git a/maven/src/integration-test/java/com/baeldung/maven/it/RestITCase.java b/maven-all/maven/src/integration-test/java/com/baeldung/maven/it/RestITCase.java similarity index 100% rename from maven/src/integration-test/java/com/baeldung/maven/it/RestITCase.java rename to maven-all/maven/src/integration-test/java/com/baeldung/maven/it/RestITCase.java diff --git a/maven/src/main/another-src/com/baeldung/maven/plugins/Foo.java b/maven-all/maven/src/main/another-src/com/baeldung/maven/plugins/Foo.java similarity index 100% rename from maven/src/main/another-src/com/baeldung/maven/plugins/Foo.java rename to maven-all/maven/src/main/another-src/com/baeldung/maven/plugins/Foo.java diff --git a/maven/src/main/java/com/baeldung/maven/it/EndpointConfig.java b/maven-all/maven/src/main/java/com/baeldung/maven/it/EndpointConfig.java similarity index 100% rename from maven/src/main/java/com/baeldung/maven/it/EndpointConfig.java rename to maven-all/maven/src/main/java/com/baeldung/maven/it/EndpointConfig.java diff --git a/maven/src/main/java/com/baeldung/maven/it/RestEndpoint.java b/maven-all/maven/src/main/java/com/baeldung/maven/it/RestEndpoint.java similarity index 100% rename from maven/src/main/java/com/baeldung/maven/it/RestEndpoint.java rename to maven-all/maven/src/main/java/com/baeldung/maven/it/RestEndpoint.java diff --git a/maven/src/main/java/com/baeldung/maven/plugins/Data.java b/maven-all/maven/src/main/java/com/baeldung/maven/plugins/Data.java similarity index 100% rename from maven/src/main/java/com/baeldung/maven/plugins/Data.java rename to maven-all/maven/src/main/java/com/baeldung/maven/plugins/Data.java diff --git a/maven/src/main/java/com/baeldung/maven/plugins/MultipleSrcFolders.java b/maven-all/maven/src/main/java/com/baeldung/maven/plugins/MultipleSrcFolders.java similarity index 100% rename from maven/src/main/java/com/baeldung/maven/plugins/MultipleSrcFolders.java rename to maven-all/maven/src/main/java/com/baeldung/maven/plugins/MultipleSrcFolders.java diff --git a/maven/src/main/resources/logback.xml b/maven-all/maven/src/main/resources/logback.xml similarity index 100% rename from maven/src/main/resources/logback.xml rename to maven-all/maven/src/main/resources/logback.xml diff --git a/maven/src/main/webapp/WEB-INF/web.xml b/maven-all/maven/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from maven/src/main/webapp/WEB-INF/web.xml rename to maven-all/maven/src/main/webapp/WEB-INF/web.xml diff --git a/maven/src/test/java/com/baeldung/maven/it/Integration.java b/maven-all/maven/src/test/java/com/baeldung/maven/it/Integration.java similarity index 100% rename from maven/src/test/java/com/baeldung/maven/it/Integration.java rename to maven-all/maven/src/test/java/com/baeldung/maven/it/Integration.java diff --git a/maven/src/test/java/com/baeldung/maven/it/RestIT.java b/maven-all/maven/src/test/java/com/baeldung/maven/it/RestIT.java similarity index 100% rename from maven/src/test/java/com/baeldung/maven/it/RestIT.java rename to maven-all/maven/src/test/java/com/baeldung/maven/it/RestIT.java diff --git a/maven/src/test/java/com/baeldung/maven/it/RestIntegrationTest.java b/maven-all/maven/src/test/java/com/baeldung/maven/it/RestIntegrationTest.java similarity index 100% rename from maven/src/test/java/com/baeldung/maven/it/RestIntegrationTest.java rename to maven-all/maven/src/test/java/com/baeldung/maven/it/RestIntegrationTest.java diff --git a/maven/src/test/java/com/baeldung/maven/it/RestJUnitTest.java b/maven-all/maven/src/test/java/com/baeldung/maven/it/RestJUnitTest.java similarity index 100% rename from maven/src/test/java/com/baeldung/maven/it/RestJUnitTest.java rename to maven-all/maven/src/test/java/com/baeldung/maven/it/RestJUnitTest.java diff --git a/maven/src/test/java/com/baeldung/maven/plugins/DataCheck.java b/maven-all/maven/src/test/java/com/baeldung/maven/plugins/DataCheck.java similarity index 100% rename from maven/src/test/java/com/baeldung/maven/plugins/DataCheck.java rename to maven-all/maven/src/test/java/com/baeldung/maven/plugins/DataCheck.java diff --git a/maven/src/test/java/com/baeldung/maven/plugins/DataUnitTest.java b/maven-all/maven/src/test/java/com/baeldung/maven/plugins/DataUnitTest.java similarity index 100% rename from maven/src/test/java/com/baeldung/maven/plugins/DataUnitTest.java rename to maven-all/maven/src/test/java/com/baeldung/maven/plugins/DataUnitTest.java diff --git a/maven/src/test/java/testfail/TestFail.java b/maven-all/maven/src/test/java/testfail/TestFail.java similarity index 100% rename from maven/src/test/java/testfail/TestFail.java rename to maven-all/maven/src/test/java/testfail/TestFail.java diff --git a/maven-all/profiles/README.md b/maven-all/profiles/README.md new file mode 100644 index 0000000000..22d5d7f70c --- /dev/null +++ b/maven-all/profiles/README.md @@ -0,0 +1,3 @@ +### Relevant Articles + +- [Guide to Maven Profiles](https://www.baeldung.com/maven-profiles) \ No newline at end of file diff --git a/maven/profiles/pom.xml b/maven-all/profiles/pom.xml similarity index 100% rename from maven/profiles/pom.xml rename to maven-all/profiles/pom.xml diff --git a/maven-all/versions-maven-plugin/README.md b/maven-all/versions-maven-plugin/README.md new file mode 100644 index 0000000000..8f5670f802 --- /dev/null +++ b/maven-all/versions-maven-plugin/README.md @@ -0,0 +1,3 @@ +### Relevant Articles + +- [Use the Latest Version of a Dependency in Maven](https://www.baeldung.com/maven-dependency-latest-version) \ No newline at end of file diff --git a/maven/versions-maven-plugin/original/pom.xml b/maven-all/versions-maven-plugin/original/pom.xml similarity index 100% rename from maven/versions-maven-plugin/original/pom.xml rename to maven-all/versions-maven-plugin/original/pom.xml diff --git a/maven/versions-maven-plugin/pom.xml b/maven-all/versions-maven-plugin/pom.xml similarity index 97% rename from maven/versions-maven-plugin/pom.xml rename to maven-all/versions-maven-plugin/pom.xml index e0714bf0e0..c9f63a46f1 100644 --- a/maven/versions-maven-plugin/pom.xml +++ b/maven-all/versions-maven-plugin/pom.xml @@ -36,7 +36,7 @@ commons-beanutils commons-beanutils - 1.9.1-SNAPSHOT + 1.9.1 diff --git a/maven/versions-maven-plugin/run-the-demo.sh b/maven-all/versions-maven-plugin/run-the-demo.sh old mode 100755 new mode 100644 similarity index 100% rename from maven/versions-maven-plugin/run-the-demo.sh rename to maven-all/versions-maven-plugin/run-the-demo.sh diff --git a/pom.xml b/pom.xml index 79e5194ee8..4f40f8261f 100644 --- a/pom.xml +++ b/pom.xml @@ -544,7 +544,11 @@ lucene mapstruct - maven + + maven-all/maven + maven-all/maven-war-plugin + maven-all/profiles + maven-all/versions-maven-plugin maven-archetype maven-polyglot/maven-polyglot-json-extension @@ -1279,7 +1283,11 @@ lucene mapstruct - maven + + maven-all/maven + maven-all/maven-war-plugin + maven-all/profiles + maven-all/versions-maven-plugin maven-archetype From 4e31b4191900ca96056571fbafa15198d3b7cf3e Mon Sep 17 00:00:00 2001 From: smokeyrobot Date: Sat, 28 Sep 2019 15:19:11 -0400 Subject: [PATCH 12/14] Bael 624 (#7805) * Commit for Eval Article pull request * Revert "Commit for Eval Article pull request" * BAEL-46 - Deleted duplicate class. * BAEL-46 - Fixed old script version * BAEL-46 - Updated per editor review * BAEL-46 - Updated JMX for corrected parameters * BAEL-46 - Corrected Name and Directory * Bael-3000 - initial commit * Bael-3000 - update per review * Bael-3000 - Updated per code review * Bael-3000 - Updated per code review * Update core-java-modules/core-java-jndi/pom.xml Co-Authored-By: KevinGilmore * Update core-java-modules/core-java-jndi/pom.xml Co-Authored-By: KevinGilmore * Bael-624 Wildfly Setup * Update pom.xml * Bael-624 Review updates --- wildfly/pom.xml | 80 +++++++++++++++++++ wildfly/src/main/java/hello/Application.java | 40 ++++++++++ .../src/main/java/hello/HelloController.java | 14 ++++ 3 files changed, 134 insertions(+) create mode 100644 wildfly/pom.xml create mode 100644 wildfly/src/main/java/hello/Application.java create mode 100644 wildfly/src/main/java/hello/HelloController.java diff --git a/wildfly/pom.xml b/wildfly/pom.xml new file mode 100644 index 0000000000..bd2c93a633 --- /dev/null +++ b/wildfly/pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + org.springframework + gs-spring-boot-wildfly + 0.1.0 + + war + + + org.springframework.boot + spring-boot-starter-parent + 2.1.6.RELEASE + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + org.springframework.boot + spring-boot-starter-test + test + + + javax.servlet + javax.servlet-api + provided + + + + + + 1.8 + + + + + + maven-failsafe-plugin + + + + integration-test + verify + + + + + + + org.apache.maven.plugins + maven-war-plugin + + + + jdk.unsupported + + + + + + + diff --git a/wildfly/src/main/java/hello/Application.java b/wildfly/src/main/java/hello/Application.java new file mode 100644 index 0000000000..07b259e3a9 --- /dev/null +++ b/wildfly/src/main/java/hello/Application.java @@ -0,0 +1,40 @@ +package hello; + +import java.util.Arrays; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +public class Application extends SpringBootServletInitializer { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(Application.class); + } + + @Bean + public CommandLineRunner commandLineRunner(ApplicationContext ctx) { + return args -> { + + System.out.println("Let's inspect the beans provided by Spring Boot:"); + + String[] beanNames = ctx.getBeanDefinitionNames(); + Arrays.sort(beanNames); + for (String beanName : beanNames) { + System.out.println(beanName); + } + + }; + } + +} diff --git a/wildfly/src/main/java/hello/HelloController.java b/wildfly/src/main/java/hello/HelloController.java new file mode 100644 index 0000000000..d9c1069cc5 --- /dev/null +++ b/wildfly/src/main/java/hello/HelloController.java @@ -0,0 +1,14 @@ +package hello; + +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.RequestMapping; + +@RestController +public class HelloController { + + @RequestMapping("/") + public String index() { + return "Greetings from Spring Boot!"; + } + +} From 2255577ffd842b5663876d233c0b891767f38855 Mon Sep 17 00:00:00 2001 From: Catalin Burcea Date: Sat, 28 Sep 2019 22:23:52 +0300 Subject: [PATCH 13/14] [BAEL-16668] Split or move testing-modules/mockito module (#7835) * Split or move testing-modules/mockito module * [BAEL-16668] fix after merge with master --- testing-modules/hamcrest/README.md | 12 ++ testing-modules/hamcrest/pom.xml | 29 +++++ .../hamcrest/objectmatchers}/City.java | 2 +- .../hamcrest/objectmatchers/Location.java | 4 + .../hamcrest/HamcrestBeansUnitTest.java | 11 +- .../HamcrestCoreMatchersUnitTest.java | 5 +- .../hamcrest/HamcrestFileUnitTest.java | 21 +--- .../hamcrest/HamcrestNumberUnitTest.java | 12 +- .../hamcrest/HamcrestObjectUnitTest.java | 11 +- .../hamcrest/HamcrestTextUnitTest.java | 6 +- .../HamcrestCustomUnitTest.java | 8 +- .../custommatchers/IsDivisibleBy.java | 2 +- .../hamcrest/custommatchers/IsOnlyDigits.java | 2 +- .../hamcrest/custommatchers/IsUppercase.java | 2 +- .../src/test/resources/test1.in | 0 testing-modules/mockito-2/README.md | 6 +- .../bddmockito/BDDMockitoUnitTest.java | 8 +- .../bddmockito/PhoneBookRepository.java | 2 +- .../mockito}/bddmockito/PhoneBookService.java | 2 +- .../LazyVerificationUnitTest.java | 14 +-- .../mockito/spy}/MockitoMisusingUnitTest.java | 16 +-- .../mockito/spy/MockitoSpyUnitTest.java | 12 +- testing-modules/mockito/README.md | 30 ++--- testing-modules/mockito/pom.xml | 8 +- .../mockito/callbacks}/ActionHandler.java | 2 +- .../baeldung/mockito/callbacks}/Callback.java | 2 +- .../baeldung/mockito/callbacks}/Data.java | 2 +- .../baeldung/mockito/callbacks}/Response.java | 2 +- .../baeldung/mockito/callbacks}/Service.java | 2 +- .../java/org/baeldung/hamcrest/Location.java | 4 - .../baeldung/mockito/FinalList.java | 4 +- .../java/com/baeldung/mockito/MockFinals.java | 35 ++++++ .../baeldung/mockito/MockFinalsUnitTest.java | 4 +- .../MockitoAnnotationIntegrationTest.java | 114 +++++++++++++++++ .../mockito/MockitoAnnotationUnitTest.java | 2 +- .../MockitoConfigExamplesIntegrationTest.java | 95 ++++++++++++++ .../MockitoConfigExamplesUnitTest.java | 4 +- .../MockitoExceptionIntegrationTest.java | 55 ++++++++ .../mockito/MockitoExceptionUnitTest.java | 2 +- .../mockito/MockitoInjectIntoSpyUnitTest.java | 5 +- .../mockito/MockitoMockIntegrationTest.java | 69 +++++++++++ .../baeldung/mockito/MockitoMockUnitTest.java | 4 +- .../MockitoVerifyExamplesIntegrationTest.java | 117 ++++++++++++++++++ .../MockitoVerifyExamplesUnitTest.java | 4 +- .../baeldung/mockito/MyDictionary.java | 2 +- .../baeldung/mockito}/MyList.java | 2 +- .../callbacks}/ActionHandlerUnitTest.java | 16 +-- .../MockitoVoidMethodsUnitTest.java | 19 +-- testing-modules/pom.xml | 1 + 49 files changed, 634 insertions(+), 159 deletions(-) create mode 100644 testing-modules/hamcrest/README.md create mode 100644 testing-modules/hamcrest/pom.xml rename testing-modules/{mockito/src/main/java/org/baeldung/hamcrest => hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers}/City.java (94%) create mode 100644 testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/Location.java rename testing-modules/{mockito/src/test/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/HamcrestBeansUnitTest.java (86%) rename testing-modules/{mockito/src/test/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java (99%) rename testing-modules/{mockito/src/test/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/HamcrestFileUnitTest.java (72%) rename testing-modules/{mockito/src/test/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/HamcrestNumberUnitTest.java (90%) rename testing-modules/{mockito/src/test/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/HamcrestObjectUnitTest.java (81%) rename testing-modules/{mockito/src/test/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/HamcrestTextUnitTest.java (99%) rename testing-modules/{mockito/src/test/java/org/baeldung/hamcrest => hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers}/HamcrestCustomUnitTest.java (82%) rename testing-modules/{mockito/src/main/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/custommatchers/IsDivisibleBy.java (93%) rename testing-modules/{mockito/src/main/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/custommatchers/IsOnlyDigits.java (92%) rename testing-modules/{mockito/src/main/java/org => hamcrest/src/test/java/com}/baeldung/hamcrest/custommatchers/IsUppercase.java (91%) rename testing-modules/{mockito => hamcrest}/src/test/resources/test1.in (100%) rename testing-modules/{mockito/src/test/java/org/baeldung => mockito-2/src/test/java/com/baeldung/mockito}/bddmockito/BDDMockitoUnitTest.java (98%) rename testing-modules/{mockito/src/test/java/org/baeldung => mockito-2/src/test/java/com/baeldung/mockito}/bddmockito/PhoneBookRepository.java (93%) rename testing-modules/{mockito/src/test/java/org/baeldung => mockito-2/src/test/java/com/baeldung/mockito}/bddmockito/PhoneBookService.java (95%) rename testing-modules/mockito-2/src/test/java/com/baeldung/mockito/{java8 => lazyverification}/LazyVerificationUnitTest.java (95%) rename testing-modules/{mockito/src/test/java/org/baeldung/mockito/misusing => mockito-2/src/test/java/com/baeldung/mockito/spy}/MockitoMisusingUnitTest.java (96%) rename testing-modules/{mockito/src/test/java/org => mockito-2/src/test/java/com}/baeldung/mockito/spy/MockitoSpyUnitTest.java (98%) rename testing-modules/mockito/src/main/java/{org/baeldung/mockito/service => com/baeldung/mockito/callbacks}/ActionHandler.java (93%) rename testing-modules/mockito/src/main/java/{org/baeldung/mockito/service => com/baeldung/mockito/callbacks}/Callback.java (61%) rename testing-modules/mockito/src/main/java/{org/baeldung/mockito/service => com/baeldung/mockito/callbacks}/Data.java (82%) rename testing-modules/mockito/src/main/java/{org/baeldung/mockito/service => com/baeldung/mockito/callbacks}/Response.java (90%) rename testing-modules/mockito/src/main/java/{org/baeldung/mockito/service => com/baeldung/mockito/callbacks}/Service.java (70%) delete mode 100644 testing-modules/mockito/src/main/java/org/baeldung/hamcrest/Location.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/FinalList.java (56%) create mode 100644 testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinals.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockFinalsUnitTest.java (90%) create mode 100644 testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationIntegrationTest.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockitoAnnotationUnitTest.java (98%) create mode 100644 testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockitoConfigExamplesUnitTest.java (97%) create mode 100644 testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionIntegrationTest.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockitoExceptionUnitTest.java (98%) rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java (90%) create mode 100644 testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockIntegrationTest.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockitoMockUnitTest.java (96%) create mode 100644 testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MockitoVerifyExamplesUnitTest.java (97%) rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/MyDictionary.java (93%) rename testing-modules/mockito/src/test/java/{org/baeldung/mockito/voidmethods => com/baeldung/mockito}/MyList.java (90%) rename testing-modules/mockito/src/test/java/{org/baeldung/mockito/service => com/baeldung/mockito/callbacks}/ActionHandlerUnitTest.java (98%) rename testing-modules/mockito/src/test/java/{org => com}/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java (79%) diff --git a/testing-modules/hamcrest/README.md b/testing-modules/hamcrest/README.md new file mode 100644 index 0000000000..f2ff6b996d --- /dev/null +++ b/testing-modules/hamcrest/README.md @@ -0,0 +1,12 @@ +## Hamcrest + +This module contains articles about Hamcrest + +### Relevant articles +- [Hamcrest Text Matchers](https://www.baeldung.com/hamcrest-text-matchers) +- [Hamcrest File Matchers](https://www.baeldung.com/hamcrest-file-matchers) +- [Hamcrest Object Matchers](https://www.baeldung.com/hamcrest-object-matchers) +- [Hamcrest Bean Matchers](https://www.baeldung.com/hamcrest-bean-matchers) +- [Hamcrest Number Matchers](https://www.baeldung.com/hamcrest-number-matchers) +- [Hamcrest Common Core Matchers](https://www.baeldung.com/hamcrest-core-matchers) +- [Hamcrest Custom Matchers](https://www.baeldung.com/hamcrest-custom-matchers) diff --git a/testing-modules/hamcrest/pom.xml b/testing-modules/hamcrest/pom.xml new file mode 100644 index 0000000000..2136702b3a --- /dev/null +++ b/testing-modules/hamcrest/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + com.baeldung + hamcrest + 0.0.1-SNAPSHOT + hamcrest + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + org.hamcrest + java-hamcrest + ${hamcrest.version} + test + + + + + 2.0.0.0 + + diff --git a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/City.java b/testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/City.java similarity index 94% rename from testing-modules/mockito/src/main/java/org/baeldung/hamcrest/City.java rename to testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/City.java index d6369189c1..cc4fba8154 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/City.java +++ b/testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/City.java @@ -1,4 +1,4 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest.objectmatchers; public class City extends Location { String name; diff --git a/testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/Location.java b/testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/Location.java new file mode 100644 index 0000000000..bb9c369c60 --- /dev/null +++ b/testing-modules/hamcrest/src/main/java/com/baeldung/hamcrest/objectmatchers/Location.java @@ -0,0 +1,4 @@ +package com.baeldung.hamcrest.objectmatchers; + +public class Location { +} diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestBeansUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestBeansUnitTest.java similarity index 86% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestBeansUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestBeansUnitTest.java index e7eb9bda1b..7f0c5290ba 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestBeansUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestBeansUnitTest.java @@ -1,5 +1,6 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest; +import com.baeldung.hamcrest.objectmatchers.City; import org.junit.Test; import java.beans.PropertyDescriptor; @@ -8,13 +9,7 @@ import java.util.List; import static java.util.stream.Collectors.toList; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.equalToIgnoringCase; -import static org.hamcrest.Matchers.samePropertyValuesAs; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.*; import static org.hamcrest.beans.PropertyUtil.getPropertyDescriptor; import static org.hamcrest.beans.PropertyUtil.propertyDescriptorsFor; diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java similarity index 99% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java index d66ed98e8d..5da6a77144 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestCoreMatchersUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest; import com.google.common.collect.Lists; @@ -145,7 +145,6 @@ public class HamcrestCoreMatchersUnitTest { @Test public void givenString_WhenContainsStringIgnoringCase_ThenCorrect() { - // GIVEN String testString = "hamcrest core"; @@ -164,7 +163,6 @@ public class HamcrestCoreMatchersUnitTest { assertThat(list, hasItem(isA(String.class))); } - @Test public void givenTestInput_WhenUsingHasItemsInCollection() { @@ -223,7 +221,6 @@ public class HamcrestCoreMatchersUnitTest { assertThat(testString, either(startsWith("Bael")).or(containsString("Core"))); } - @Test public void givenTestInput_WhenUsingEveryItemForMatchInCollection() { diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestFileUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestFileUnitTest.java similarity index 72% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestFileUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestFileUnitTest.java index 9973e325d6..73e2da52b5 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestFileUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestFileUnitTest.java @@ -1,22 +1,13 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest; -import static org.hamcrest.core.StringContains.containsString; -import static org.hamcrest.io.FileMatchers.aFileNamed; -import static org.hamcrest.io.FileMatchers.aFileWithAbsolutePath; -import static org.hamcrest.io.FileMatchers.aFileWithCanonicalPath; -import static org.hamcrest.io.FileMatchers.aFileWithSize; -import static org.hamcrest.io.FileMatchers.aReadableFile; -import static org.hamcrest.io.FileMatchers.aWritableFile; -import static org.hamcrest.io.FileMatchers.anExistingDirectory; -import static org.hamcrest.io.FileMatchers.anExistingFile; -import static org.hamcrest.io.FileMatchers.anExistingFileOrDirectory; -import static org.hamcrest.number.OrderingComparison.greaterThan; -import static org.hamcrest.text.IsEqualIgnoringCase.equalToIgnoringCase; -import static org.junit.Assert.assertThat; +import org.junit.Test; import java.io.File; -import org.junit.Test; +import static org.hamcrest.io.FileMatchers.*; +import static org.hamcrest.number.OrderingComparison.greaterThan; +import static org.hamcrest.text.IsEqualIgnoringCase.equalToIgnoringCase; +import static org.junit.Assert.assertThat; public class HamcrestFileUnitTest { diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestNumberUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestNumberUnitTest.java similarity index 90% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestNumberUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestNumberUnitTest.java index fbba6b94d2..d2b3392537 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestNumberUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestNumberUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest; import org.junit.Test; @@ -6,15 +6,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.closeTo; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.greaterThan; -import static org.hamcrest.Matchers.greaterThanOrEqualTo; -import static org.hamcrest.Matchers.lessThan; -import static org.hamcrest.Matchers.lessThanOrEqualTo; -import static org.hamcrest.Matchers.comparesEqualTo; -import static org.hamcrest.Matchers.notANumber; +import static org.hamcrest.Matchers.*; public class HamcrestNumberUnitTest { diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestObjectUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestObjectUnitTest.java similarity index 81% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestObjectUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestObjectUnitTest.java index 8d30ff297b..c07fc422f6 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestObjectUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestObjectUnitTest.java @@ -1,14 +1,11 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest; +import com.baeldung.hamcrest.objectmatchers.City; +import com.baeldung.hamcrest.objectmatchers.Location; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasToString; -import static org.hamcrest.Matchers.equalToIgnoringCase; -import static org.hamcrest.Matchers.emptyOrNullString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.typeCompatibleWith; -import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.*; public class HamcrestObjectUnitTest { diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestTextUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestTextUnitTest.java similarity index 99% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestTextUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestTextUnitTest.java index e336b1bba3..593fdf82b6 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestTextUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/HamcrestTextUnitTest.java @@ -1,4 +1,6 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest; + +import org.junit.Test; import static org.hamcrest.core.StringContains.containsString; import static org.hamcrest.core.StringContains.containsStringIgnoringCase; @@ -16,8 +18,6 @@ import static org.hamcrest.text.MatchesPattern.matchesPattern; import static org.hamcrest.text.StringContainsInOrder.stringContainsInOrder; import static org.junit.Assert.assertThat; -import org.junit.Test; - public class HamcrestTextUnitTest { @Test diff --git a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestCustomUnitTest.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/HamcrestCustomUnitTest.java similarity index 82% rename from testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestCustomUnitTest.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/HamcrestCustomUnitTest.java index 6cc8692bc7..62c68d4561 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/hamcrest/HamcrestCustomUnitTest.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/HamcrestCustomUnitTest.java @@ -1,10 +1,10 @@ -package org.baeldung.hamcrest; +package com.baeldung.hamcrest.custommatchers; import org.junit.Test; -import static org.baeldung.hamcrest.custommatchers.IsDivisibleBy.divisibleBy; -import static org.baeldung.hamcrest.custommatchers.IsOnlyDigits.onlyDigits; -import static org.baeldung.hamcrest.custommatchers.IsUppercase.uppercase; +import static com.baeldung.hamcrest.custommatchers.IsDivisibleBy.divisibleBy; +import static com.baeldung.hamcrest.custommatchers.IsOnlyDigits.onlyDigits; +import static com.baeldung.hamcrest.custommatchers.IsUppercase.uppercase; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; diff --git a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsDivisibleBy.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsDivisibleBy.java similarity index 93% rename from testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsDivisibleBy.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsDivisibleBy.java index ea12ce0006..f865523be4 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsDivisibleBy.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsDivisibleBy.java @@ -1,4 +1,4 @@ -package org.baeldung.hamcrest.custommatchers; +package com.baeldung.hamcrest.custommatchers; import org.hamcrest.Description; import org.hamcrest.Matcher; diff --git a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsOnlyDigits.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsOnlyDigits.java similarity index 92% rename from testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsOnlyDigits.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsOnlyDigits.java index 7515dfbf6d..f113c92983 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsOnlyDigits.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsOnlyDigits.java @@ -1,4 +1,4 @@ -package org.baeldung.hamcrest.custommatchers; +package com.baeldung.hamcrest.custommatchers; import org.hamcrest.Description; import org.hamcrest.Matcher; diff --git a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsUppercase.java b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsUppercase.java similarity index 91% rename from testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsUppercase.java rename to testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsUppercase.java index 859e7006b7..4ffacd939c 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/custommatchers/IsUppercase.java +++ b/testing-modules/hamcrest/src/test/java/com/baeldung/hamcrest/custommatchers/IsUppercase.java @@ -1,4 +1,4 @@ -package org.baeldung.hamcrest.custommatchers; +package com.baeldung.hamcrest.custommatchers; import org.hamcrest.Description; import org.hamcrest.Matcher; diff --git a/testing-modules/mockito/src/test/resources/test1.in b/testing-modules/hamcrest/src/test/resources/test1.in similarity index 100% rename from testing-modules/mockito/src/test/resources/test1.in rename to testing-modules/hamcrest/src/test/resources/test1.in diff --git a/testing-modules/mockito-2/README.md b/testing-modules/mockito-2/README.md index 5c9e8fc81a..1d1bd6af7c 100644 --- a/testing-modules/mockito-2/README.md +++ b/testing-modules/mockito-2/README.md @@ -1,5 +1,7 @@ ### Relevant articles -- [Mockito’s Java 8 Features](http://www.baeldung.com/mockito-2-java-8) -- [Lazy Verification with Mockito 2](http://www.baeldung.com/mockito-2-lazy-verification) +- [Mockito’s Java 8 Features](https://www.baeldung.com/mockito-2-java-8) +- [Lazy Verification with Mockito 2](https://www.baeldung.com/mockito-2-lazy-verification) - [Mockito Strict Stubbing and The UnnecessaryStubbingException](https://www.baeldung.com/mockito-unnecessary-stubbing-exception) +- [Quick Guide to BDDMockito](https://www.baeldung.com/bdd-mockito) +- [Mockito – Using Spies](https://www.baeldung.com/mockito-spy) diff --git a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/BDDMockitoUnitTest.java similarity index 98% rename from testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/BDDMockitoUnitTest.java index 977a60933f..fd7f04870b 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/BDDMockitoUnitTest.java @@ -1,7 +1,4 @@ -package org.baeldung.bddmockito; - -import static org.junit.Assert.fail; -import static org.mockito.BDDMockito.*; +package com.baeldung.mockito.bddmockito; import org.junit.Assert; import org.junit.Before; @@ -9,6 +6,9 @@ import org.junit.Test; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; +import static org.junit.Assert.fail; +import static org.mockito.BDDMockito.*; + public class BDDMockitoUnitTest { diff --git a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/PhoneBookRepository.java similarity index 93% rename from testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/PhoneBookRepository.java index 94d4a90d4b..dd44e5e3cc 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/PhoneBookRepository.java @@ -1,4 +1,4 @@ -package org.baeldung.bddmockito; +package com.baeldung.mockito.bddmockito; public interface PhoneBookRepository { diff --git a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/PhoneBookService.java similarity index 95% rename from testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/PhoneBookService.java index 8fc49b026d..b96cf4efb7 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/bddmockito/PhoneBookService.java @@ -1,4 +1,4 @@ -package org.baeldung.bddmockito; +package com.baeldung.mockito.bddmockito; public class PhoneBookService { diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/LazyVerificationUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/lazyverification/LazyVerificationUnitTest.java similarity index 95% rename from testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/LazyVerificationUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/lazyverification/LazyVerificationUnitTest.java index 0e6921c7a1..c7a9d84191 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/LazyVerificationUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/lazyverification/LazyVerificationUnitTest.java @@ -1,16 +1,16 @@ -package com.baeldung.mockito.java8; - -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import java.util.List; +package com.baeldung.mockito.lazyverification; import org.junit.Test; import org.mockito.exceptions.base.MockitoAssertionError; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.VerificationCollector; +import java.util.List; + +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + public class LazyVerificationUnitTest { @Test diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/misusing/MockitoMisusingUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/spy/MockitoMisusingUnitTest.java similarity index 96% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/misusing/MockitoMisusingUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/spy/MockitoMisusingUnitTest.java index 306f53297a..ea12061fc6 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/misusing/MockitoMisusingUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/spy/MockitoMisusingUnitTest.java @@ -1,11 +1,4 @@ -package org.baeldung.mockito.misusing; - -import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; -import static org.junit.jupiter.api.Assertions.fail; - -import java.util.ArrayList; -import java.util.List; +package com.baeldung.mockito.spy; import org.junit.After; import org.junit.Test; @@ -13,6 +6,13 @@ import org.mockito.Mockito; import org.mockito.exceptions.misusing.NotAMockException; import org.mockito.internal.progress.ThreadSafeMockingProgress; +import java.util.ArrayList; +import java.util.List; + +import static org.hamcrest.CoreMatchers.containsString; +import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.fail; + public class MockitoMisusingUnitTest { @After diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/spy/MockitoSpyUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/spy/MockitoSpyUnitTest.java similarity index 98% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/spy/MockitoSpyUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/spy/MockitoSpyUnitTest.java index 068a4c6de9..d4696e482b 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/spy/MockitoSpyUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/spy/MockitoSpyUnitTest.java @@ -1,9 +1,4 @@ -package org.baeldung.mockito.spy; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; +package com.baeldung.mockito.spy; import org.junit.Test; import org.junit.runner.RunWith; @@ -11,6 +6,11 @@ import org.mockito.Mockito; import org.mockito.Spy; import org.mockito.junit.MockitoJUnitRunner; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; + @RunWith(MockitoJUnitRunner.class) public class MockitoSpyUnitTest { diff --git a/testing-modules/mockito/README.md b/testing-modules/mockito/README.md index 9c6407f9da..6b8f53ffee 100644 --- a/testing-modules/mockito/README.md +++ b/testing-modules/mockito/README.md @@ -4,23 +4,13 @@ ### Relevant Articles: -- [Mockito Verify Cookbook](http://www.baeldung.com/mockito-verify) -- [Mockito When/Then Cookbook](http://www.baeldung.com/mockito-behavior) -- [Mockito – Using Spies](http://www.baeldung.com/mockito-spy) -- [Getting Started with Mockito @Mock, @Spy, @Captor and @InjectMocks](http://www.baeldung.com/mockito-annotations) -- [Mockito’s Mock Methods](http://www.baeldung.com/mockito-mock-methods) -- [Introduction to PowerMock](http://www.baeldung.com/intro-to-powermock) -- [Mocking Exception Throwing using Mockito](http://www.baeldung.com/mockito-exceptions) -- [Mocking Void Methods with Mockito](http://www.baeldung.com/mockito-void-methods) -- [Mocking of Private Methods Using PowerMock](http://www.baeldung.com/powermock-private-method) -- [Mock Final Classes and Methods with Mockito](http://www.baeldung.com/mockito-final) -- [Hamcrest Custom Matchers](http://www.baeldung.com/hamcrest-custom-matchers) -- [Hamcrest Common Core Matchers](http://www.baeldung.com/hamcrest-core-matchers) -- [Testing Callbacks with Mockito](http://www.baeldung.com/mockito-callbacks) -- [Using Hamcrest Number Matchers](https://www.baeldung.com/hamcrest-number-matchers) -- [Quick Guide to BDDMockito](http://www.baeldung.com/bdd-mockito) -- [Hamcrest Bean Matchers](http://www.baeldung.com/hamcrest-bean-matchers) -- [Hamcrest Object Matchers](http://www.baeldung.com/hamcrest-object-matchers) -- [Hamcrest File Matchers](https://www.baeldung.com/hamcrest-file-matchers) -- [Hamcrest Text Matchers](http://www.baeldung.com/hamcrest-text-matchers) -- [Testing Callbacks with Mockito](http://www.baeldung.com/mockito-callbacks) +- [Mockito Verify Cookbook](https://www.baeldung.com/mockito-verify) +- [Mockito When/Then Cookbook](https://www.baeldung.com/mockito-behavior) +- [Getting Started with Mockito @Mock, @Spy, @Captor and @InjectMocks](https://www.baeldung.com/mockito-annotations) +- [Mockito’s Mock Methods](https://www.baeldung.com/mockito-mock-methods) +- [Introduction to PowerMock](https://www.baeldung.com/intro-to-powermock) +- [Mocking of Private Methods Using PowerMock](https://www.baeldung.com/powermock-private-method) +- [Mocking Exception Throwing using Mockito](https://www.baeldung.com/mockito-exceptions) +- [Mocking Void Methods with Mockito](https://www.baeldung.com/mockito-void-methods) +- [Mock Final Classes and Methods with Mockito](https://www.baeldung.com/mockito-final) +- [Testing Callbacks with Mockito](https://www.baeldung.com/mockito-callbacks) diff --git a/testing-modules/mockito/pom.xml b/testing-modules/mockito/pom.xml index f307b80370..e0f32d88bf 100644 --- a/testing-modules/mockito/pom.xml +++ b/testing-modules/mockito/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - org.baeldung + com.baeldung mockito 0.1-SNAPSHOT mockito @@ -58,12 +58,6 @@ ${powermock.version} test
- - org.hamcrest - java-hamcrest - ${hamcrest.version} - - org.springframework.boot spring-boot-starter diff --git a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/ActionHandler.java b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/ActionHandler.java similarity index 93% rename from testing-modules/mockito/src/main/java/org/baeldung/mockito/service/ActionHandler.java rename to testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/ActionHandler.java index 289dcff399..d70fc2b690 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/ActionHandler.java +++ b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/ActionHandler.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito.service; +package com.baeldung.mockito.callbacks; public class ActionHandler { diff --git a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Callback.java b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Callback.java similarity index 61% rename from testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Callback.java rename to testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Callback.java index fb8d01ce2e..cc6180c249 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Callback.java +++ b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Callback.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito.service; +package com.baeldung.mockito.callbacks; public interface Callback { diff --git a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Data.java b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Data.java similarity index 82% rename from testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Data.java rename to testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Data.java index 665c05382c..9549995469 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Data.java +++ b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Data.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito.service; +package com.baeldung.mockito.callbacks; public class Data { diff --git a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Response.java b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Response.java similarity index 90% rename from testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Response.java rename to testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Response.java index 22474a5ba7..03aded3895 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Response.java +++ b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Response.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito.service; +package com.baeldung.mockito.callbacks; public class Response { diff --git a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Service.java b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Service.java similarity index 70% rename from testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Service.java rename to testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Service.java index 63434e53fb..d9f1a44422 100644 --- a/testing-modules/mockito/src/main/java/org/baeldung/mockito/service/Service.java +++ b/testing-modules/mockito/src/main/java/com/baeldung/mockito/callbacks/Service.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito.service; +package com.baeldung.mockito.callbacks; public interface Service { diff --git a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/Location.java b/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/Location.java deleted file mode 100644 index 52561d07dc..0000000000 --- a/testing-modules/mockito/src/main/java/org/baeldung/hamcrest/Location.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.baeldung.hamcrest; - -public class Location { -} diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/FinalList.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/FinalList.java similarity index 56% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/FinalList.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/FinalList.java index e01f189f0b..27b7534978 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/FinalList.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/FinalList.java @@ -1,6 +1,4 @@ -package org.baeldung.mockito; - -import org.baeldung.mockito.voidmethods.MyList; +package com.baeldung.mockito; public final class FinalList extends MyList { diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinals.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinals.java new file mode 100644 index 0000000000..6ff791ae06 --- /dev/null +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinals.java @@ -0,0 +1,35 @@ +package com.baeldung.mockito; + +import org.junit.Test; + +import static org.junit.Assert.assertNotEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class MockFinals { + + @Test + public void whenMockFinalClassMockWorks() { + + FinalList finalList = new FinalList(); + + FinalList mock = mock(FinalList.class); + when(mock.size()).thenReturn(2); + + assertNotEquals(mock.size(), finalList.size()); + + } + + @Test + public void whenMockFinalMethodMockWorks() { + + MyList myList = new MyList(); + + MyList mock = mock(MyList.class); + when(mock.finalMethod()).thenReturn(1); + + assertNotEquals(mock.finalMethod(), myList.finalMethod()); + } + + + } diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockFinalsUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinalsUnitTest.java similarity index 90% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockFinalsUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinalsUnitTest.java index 000774592c..bb03fca06f 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockFinalsUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockFinalsUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import org.junit.Test; @@ -6,7 +6,7 @@ import static org.junit.Assert.assertNotEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import org.baeldung.mockito.voidmethods.MyList; +import com.baeldung.mockito.MyList; public class MockFinalsUnitTest { diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationIntegrationTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationIntegrationTest.java new file mode 100644 index 0000000000..94054d1cbb --- /dev/null +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationIntegrationTest.java @@ -0,0 +1,114 @@ +package com.baeldung.mockito; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; + +//@RunWith(MockitoJUnitRunner.class) +public class MockitoAnnotationIntegrationTest { + + @Mock + private List mockedList; + + @Spy + private List spiedList = new ArrayList<>(); + + @Before + public void init() { + MockitoAnnotations.initMocks(this); + } + + // tests + + @Test + public void whenNotUseMockAnnotation_thenCorrect() { + final List mockList = Mockito.mock(List.class); + mockList.add("one"); + Mockito.verify(mockList).add("one"); + assertEquals(0, mockList.size()); + + Mockito.when(mockList.size()).thenReturn(100); + assertEquals(100, mockList.size()); + } + + @Test + public void whenUseMockAnnotation_thenMockIsInjected() { + mockedList.add("one"); + Mockito.verify(mockedList).add("one"); + assertEquals(0, mockedList.size()); + + Mockito.when(mockedList.size()).thenReturn(100); + assertEquals(100, mockedList.size()); + } + + @Test + public void whenNotUseSpyAnnotation_thenCorrect() { + final List spyList = Mockito.spy(new ArrayList()); + spyList.add("one"); + spyList.add("two"); + + Mockito.verify(spyList).add("one"); + Mockito.verify(spyList).add("two"); + + assertEquals(2, spyList.size()); + + Mockito.doReturn(100).when(spyList).size(); + assertEquals(100, spyList.size()); + } + + @Test + public void whenUseSpyAnnotation_thenSpyIsInjectedCorrectly() { + spiedList.add("one"); + spiedList.add("two"); + + Mockito.verify(spiedList).add("one"); + Mockito.verify(spiedList).add("two"); + + assertEquals(2, spiedList.size()); + + Mockito.doReturn(100).when(spiedList).size(); + assertEquals(100, spiedList.size()); + } + + @Test + public void whenNotUseCaptorAnnotation_thenCorrect() { + final List mockList = Mockito.mock(List.class); + final ArgumentCaptor arg = ArgumentCaptor.forClass(String.class); + mockList.add("one"); + Mockito.verify(mockList).add(arg.capture()); + + assertEquals("one", arg.getValue()); + } + + @Captor + private + ArgumentCaptor argCaptor; + + @Test + public void whenUseCaptorAnnotation_thenTheSam() { + mockedList.add("one"); + Mockito.verify(mockedList).add(argCaptor.capture()); + + assertEquals("one", argCaptor.getValue()); + } + + @Mock + private Map wordMap; + + @InjectMocks + private MyDictionary dic = new MyDictionary(); + + @Test + public void whenUseInjectMocksAnnotation_thenCorrect() { + Mockito.when(wordMap.get("aWord")).thenReturn("aMeaning"); + + assertEquals("aMeaning", dic.getMeaning("aWord")); + } + +} diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java similarity index 98% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java index 6bc0e69e65..731183bae2 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoAnnotationUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import org.junit.Before; import org.junit.Test; diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java new file mode 100644 index 0000000000..5d3c009edc --- /dev/null +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java @@ -0,0 +1,95 @@ +package com.baeldung.mockito; + +import org.junit.Test; +import org.mockito.Mockito; + +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.*; + +public class MockitoConfigExamplesIntegrationTest { + + // tests + + @Test + public final void whenMockReturnBehaviorIsConfigured_thenBehaviorIsVerified() { + final MyList listMock = Mockito.mock(MyList.class); + when(listMock.add(anyString())).thenReturn(false); + + final boolean added = listMock.add(randomAlphabetic(6)); + assertThat(added, is(false)); + } + + @Test + public final void whenMockReturnBehaviorIsConfigured2_thenBehaviorIsVerified() { + final MyList listMock = Mockito.mock(MyList.class); + doReturn(false).when(listMock).add(anyString()); + + final boolean added = listMock.add(randomAlphabetic(6)); + assertThat(added, is(false)); + } + + @Test(expected = IllegalStateException.class) + public final void givenMethodIsConfiguredToThrowException_whenCallingMethod_thenExceptionIsThrown() { + final MyList listMock = Mockito.mock(MyList.class); + when(listMock.add(anyString())).thenThrow(IllegalStateException.class); + + listMock.add(randomAlphabetic(6)); + } + + @Test(expected = NullPointerException.class) + public final void whenMethodHasNoReturnType_whenConfiguringBehaviorOfMethod_thenPossible() { + final MyList listMock = Mockito.mock(MyList.class); + doThrow(NullPointerException.class).when(listMock).clear(); + + listMock.clear(); + } + + @Test + public final void givenBehaviorIsConfiguredToThrowExceptionOnSecondCall_whenCallingOnlyOnce_thenNoExceptionIsThrown() { + final MyList listMock = Mockito.mock(MyList.class); + when(listMock.add(anyString())).thenReturn(false).thenThrow(IllegalStateException.class); + + listMock.add(randomAlphabetic(6)); + } + + @Test(expected = IllegalStateException.class) + public final void givenBehaviorIsConfiguredToThrowExceptionOnSecondCall_whenCallingTwice_thenExceptionIsThrown() { + final MyList listMock = Mockito.mock(MyList.class); + when(listMock.add(anyString())).thenReturn(false).thenThrow(IllegalStateException.class); + + listMock.add(randomAlphabetic(6)); + listMock.add(randomAlphabetic(6)); + } + + @Test + public final void whenMockMethodCallIsConfiguredToCallTheRealMethod_thenRealMethodIsCalled() { + final MyList listMock = Mockito.mock(MyList.class); + when(listMock.size()).thenCallRealMethod(); + + assertThat(listMock.size(), equalTo(1)); + } + + @Test + public final void whenMockMethodCallIsConfiguredWithCustomAnswer_thenRealMethodIsCalled() { + final MyList listMock = Mockito.mock(MyList.class); + doAnswer(invocation -> "Always the same").when(listMock).get(anyInt()); + + final String element = listMock.get(1); + assertThat(element, is(equalTo("Always the same"))); + } + + @Test(expected = NullPointerException.class) + public final void givenSpy_whenConfiguringBehaviorOfSpy_thenCorrectlyConfigured() { + final MyList instance = new MyList(); + final MyList spy = Mockito.spy(instance); + + doThrow(NullPointerException.class).when(spy).size(); + spy.size(); + } + +} diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesUnitTest.java similarity index 97% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesUnitTest.java index c065e164c5..389dc231c1 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoConfigExamplesUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import org.junit.Test; import org.mockito.Mockito; @@ -11,7 +11,7 @@ import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; -import org.baeldung.mockito.voidmethods.MyList; +import com.baeldung.mockito.MyList; public class MockitoConfigExamplesUnitTest { diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionIntegrationTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionIntegrationTest.java new file mode 100644 index 0000000000..23fcba60b8 --- /dev/null +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionIntegrationTest.java @@ -0,0 +1,55 @@ +package com.baeldung.mockito; + +import org.junit.Test; +import org.mockito.Mockito; + +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.*; + +public class MockitoExceptionIntegrationTest { + + @Test(expected = NullPointerException.class) + public void whenConfigNonVoidRetunMethodToThrowEx_thenExIsThrown() { + MyDictionary dictMock = mock(MyDictionary.class); + when(dictMock.getMeaning(anyString())).thenThrow(NullPointerException.class); + + dictMock.getMeaning("word"); + } + + @Test(expected = IllegalStateException.class) + public void whenConfigVoidRetunMethodToThrowEx_thenExIsThrown() { + MyDictionary dictMock = mock(MyDictionary.class); + doThrow(IllegalStateException.class).when(dictMock) + .add(anyString(), anyString()); + + dictMock.add("word", "meaning"); + } + + @Test(expected = NullPointerException.class) + public void whenConfigNonVoidRetunMethodToThrowExWithNewExObj_thenExIsThrown() { + MyDictionary dictMock = mock(MyDictionary.class); + when(dictMock.getMeaning(anyString())).thenThrow(new NullPointerException("Error occurred")); + + dictMock.getMeaning("word"); + } + + @Test(expected = IllegalStateException.class) + public void whenConfigVoidRetunMethodToThrowExWithNewExObj_thenExIsThrown() { + MyDictionary dictMock = mock(MyDictionary.class); + doThrow(new IllegalStateException("Error occurred")).when(dictMock) + .add(anyString(), anyString()); + + dictMock.add("word", "meaning"); + } + + // ===== + + @Test(expected = NullPointerException.class) + public void givenSpy_whenConfigNonVoidRetunMethodToThrowEx_thenExIsThrown() { + MyDictionary dict = new MyDictionary(); + MyDictionary spy = Mockito.spy(dict); + + when(spy.getMeaning(anyString())).thenThrow(NullPointerException.class); + spy.getMeaning("word"); + } +} diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoExceptionUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionUnitTest.java similarity index 98% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoExceptionUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionUnitTest.java index 88da16ae2b..7ed4fbdf37 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoExceptionUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoExceptionUnitTest.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doThrow; diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java similarity index 90% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java index 568492ca10..d6a11bbc7d 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoInjectIntoSpyUnitTest.java @@ -1,13 +1,12 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.*; import org.mockito.junit.MockitoJUnitRunner; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import static org.junit.Assert.assertEquals; diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockIntegrationTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockIntegrationTest.java new file mode 100644 index 0000000000..e8cbcc4e8c --- /dev/null +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockIntegrationTest.java @@ -0,0 +1,69 @@ +package com.baeldung.mockito; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.mockito.MockSettings; +import org.mockito.exceptions.verification.TooLittleActualInvocations; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.*; + +public class MockitoMockIntegrationTest { + + private static class CustomAnswer implements Answer { + @Override + public Boolean answer(InvocationOnMock invocation) throws Throwable { + return false; + } + } + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void whenUsingSimpleMock_thenCorrect() { + MyList listMock = mock(MyList.class); + when(listMock.add(anyString())).thenReturn(false); + boolean added = listMock.add(randomAlphabetic(6)); + + verify(listMock).add(anyString()); + assertThat(added, is(false)); + } + + @Test + public void whenUsingMockWithName_thenCorrect() { + MyList listMock = mock(MyList.class, "myMock"); + when(listMock.add(anyString())).thenReturn(false); + listMock.add(randomAlphabetic(6)); + + thrown.expect(TooLittleActualInvocations.class); + thrown.expectMessage(containsString("myMock.add")); + + verify(listMock, times(2)).add(anyString()); + } + + @Test + public void whenUsingMockWithAnswer_thenCorrect() { + MyList listMock = mock(MyList.class, new CustomAnswer()); + boolean added = listMock.add(randomAlphabetic(6)); + + verify(listMock).add(anyString()); + assertThat(added, is(false)); + } + + @Test + public void whenUsingMockWithSettings_thenCorrect() { + MockSettings customSettings = withSettings().defaultAnswer(new CustomAnswer()); + MyList listMock = mock(MyList.class, customSettings); + boolean added = listMock.add(randomAlphabetic(6)); + + verify(listMock).add(anyString()); + assertThat(added, is(false)); + } +} \ No newline at end of file diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoMockUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockUnitTest.java similarity index 96% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoMockUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockUnitTest.java index 30c843ff13..e1d99f80a2 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoMockUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoMockUnitTest.java @@ -1,8 +1,8 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import static org.mockito.Mockito.*; -import org.baeldung.mockito.voidmethods.MyList; +import com.baeldung.mockito.MyList; import static org.junit.Assert.assertThat; import static org.hamcrest.Matchers.is; diff --git a/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java new file mode 100644 index 0000000000..b5075d7db2 --- /dev/null +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java @@ -0,0 +1,117 @@ +package com.baeldung.mockito; + +import com.google.common.collect.Lists; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.InOrder; +import org.mockito.Mockito; +import org.mockito.exceptions.verification.NoInteractionsWanted; + +import java.util.List; + +import static org.hamcrest.Matchers.hasItem; +import static org.junit.Assert.assertThat; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.*; + +public class MockitoVerifyExamplesIntegrationTest { + + // tests + + @Test + public final void givenInteractionWithMockOccurred_whenVerifyingInteraction_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.size(); + verify(mockedList).size(); + } + + @Test + public final void givenOneInteractionWithMockOccurred_whenVerifyingNumberOfInteractions_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.size(); + verify(mockedList, times(1)).size(); + } + + @Test + public final void givenNoInteractionWithMockOccurred_whenVerifyingInteractions_thenCorrect() { + final List mockedList = mock(MyList.class); + verifyZeroInteractions(mockedList); + } + + @Test + public final void givenNoInteractionWithMethodOfMockOccurred_whenVerifyingInteractions_thenCorrect() { + final List mockedList = mock(MyList.class); + verify(mockedList, times(0)).size(); + } + + @Test(expected = NoInteractionsWanted.class) + public final void givenUnverifiedInteraction_whenVerifyingNoUnexpectedInteractions_thenFail() { + final List mockedList = mock(MyList.class); + mockedList.size(); + mockedList.clear(); + + verify(mockedList).size(); + verifyNoMoreInteractions(mockedList); + } + + @Test + public final void whenVerifyingOrderOfInteractions_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.size(); + mockedList.add("a parameter"); + mockedList.clear(); + + final InOrder inOrder = Mockito.inOrder(mockedList); + inOrder.verify(mockedList).size(); + inOrder.verify(mockedList).add("a parameter"); + inOrder.verify(mockedList).clear(); + } + + @Test + public final void whenVerifyingAnInteractionHasNotOccurred_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.size(); + + verify(mockedList, never()).clear(); + } + + @Test + public final void whenVerifyingAnInteractionHasOccurredAtLeastOnce_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.clear(); + mockedList.clear(); + mockedList.clear(); + + verify(mockedList, atLeast(1)).clear(); + verify(mockedList, atMost(10)).clear(); + } + + // with arguments + + @Test + public final void whenVerifyingAnInteractionWithExactArgument_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.add("test"); + + verify(mockedList).add("test"); + } + + @Test + public final void whenVerifyingAnInteractionWithAnyArgument_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.add("test"); + + verify(mockedList).add(anyString()); + } + + @Test + public final void whenVerifyingAnInteractionWithArgumentCapture_thenCorrect() { + final List mockedList = mock(MyList.class); + mockedList.addAll(Lists.newArrayList("someElement")); + final ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(List.class); + verify(mockedList).addAll(argumentCaptor.capture()); + final List capturedArgument = argumentCaptor.>getValue(); + assertThat(capturedArgument, hasItem("someElement")); + } + +} diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesUnitTest.java similarity index 97% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesUnitTest.java index a6e40b84e1..ca09f77d2d 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MockitoVerifyExamplesUnitTest.java @@ -1,8 +1,8 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import com.google.common.collect.Lists; -import org.baeldung.mockito.voidmethods.MyList; +import com.baeldung.mockito.MyList; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.InOrder; diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MyDictionary.java similarity index 93% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MyDictionary.java index 9492c90d11..92a4498696 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MyDictionary.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito; +package com.baeldung.mockito; import java.util.HashMap; import java.util.Map; diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/voidmethods/MyList.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MyList.java similarity index 90% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/voidmethods/MyList.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/MyList.java index f28c9b732f..ac3a76e04a 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/voidmethods/MyList.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/MyList.java @@ -1,4 +1,4 @@ -package org.baeldung.mockito.voidmethods; +package com.baeldung.mockito; import java.util.AbstractList; diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/service/ActionHandlerUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/callbacks/ActionHandlerUnitTest.java similarity index 98% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/service/ActionHandlerUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/callbacks/ActionHandlerUnitTest.java index c34a9a4a09..5ffe4ab28d 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/service/ActionHandlerUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/callbacks/ActionHandlerUnitTest.java @@ -1,11 +1,4 @@ -package org.baeldung.mockito.service; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.verify; +package com.baeldung.mockito.callbacks; import org.junit.Before; import org.junit.Test; @@ -15,6 +8,13 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.stubbing.Answer; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.verify; + public class ActionHandlerUnitTest { @Mock diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java b/testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java similarity index 79% rename from testing-modules/mockito/src/test/java/org/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java index 0393490f9a..dd41d98b57 100644 --- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java +++ b/testing-modules/mockito/src/test/java/com/baeldung/mockito/voidmethods/MockitoVoidMethodsUnitTest.java @@ -1,23 +1,16 @@ -package org.baeldung.mockito.voidmethods; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.isA; -import static org.mockito.ArgumentMatchers.isNull; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.doCallRealMethod; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; +package com.baeldung.mockito.voidmethods; +import com.baeldung.mockito.MyList; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; + @RunWith(MockitoJUnitRunner.class) public class MockitoVoidMethodsUnitTest { diff --git a/testing-modules/pom.xml b/testing-modules/pom.xml index c0eb59f15e..6400a2d7e7 100644 --- a/testing-modules/pom.xml +++ b/testing-modules/pom.xml @@ -23,6 +23,7 @@ load-testing-comparison mockito mockito-2 + hamcrest mocks mockserver parallel-tests-junit From 39e99cd907e348165249388c9002a297e89c782f Mon Sep 17 00:00:00 2001 From: Catalin Burcea Date: Sat, 28 Sep 2019 22:26:32 +0300 Subject: [PATCH 14/14] Split or move core-java-collections module (#7893) --- core-java-modules/core-java-arrays-2/README.MD | 1 + .../baeldung/array}/removefirst/RemoveFirstElementUnitTest.java | 2 +- core-java-modules/core-java-collections-list/README.md | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) rename core-java-modules/{core-java-collections-list/src/test/java/com/baeldung/list => core-java-arrays-2/src/test/java/com/baeldung/array}/removefirst/RemoveFirstElementUnitTest.java (97%) diff --git a/core-java-modules/core-java-arrays-2/README.MD b/core-java-modules/core-java-arrays-2/README.MD index 280fb33dc3..952770a2da 100644 --- a/core-java-modules/core-java-arrays-2/README.MD +++ b/core-java-modules/core-java-arrays-2/README.MD @@ -7,3 +7,4 @@ - [Array Operations in Java](https://www.baeldung.com/java-common-array-operations) - [Intersection Between two Integer Arrays](https://www.baeldung.com/java-array-intersection) - [Removing an Element from an Array in Java](https://www.baeldung.com/java-array-remove-element) +- [Removing the First Element of an Array](https://www.baeldung.com/java-array-remove-first-element) diff --git a/core-java-modules/core-java-collections-list/src/test/java/com/baeldung/list/removefirst/RemoveFirstElementUnitTest.java b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/array/removefirst/RemoveFirstElementUnitTest.java similarity index 97% rename from core-java-modules/core-java-collections-list/src/test/java/com/baeldung/list/removefirst/RemoveFirstElementUnitTest.java rename to core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/array/removefirst/RemoveFirstElementUnitTest.java index f2b1bd9d88..83a97973f3 100644 --- a/core-java-modules/core-java-collections-list/src/test/java/com/baeldung/list/removefirst/RemoveFirstElementUnitTest.java +++ b/core-java-modules/core-java-arrays-2/src/test/java/com/baeldung/array/removefirst/RemoveFirstElementUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.list.removefirst; +package com.baeldung.array.removefirst; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; diff --git a/core-java-modules/core-java-collections-list/README.md b/core-java-modules/core-java-collections-list/README.md index 1542a352fe..367f62780d 100644 --- a/core-java-modules/core-java-collections-list/README.md +++ b/core-java-modules/core-java-collections-list/README.md @@ -12,4 +12,3 @@ - [How to Find an Element in a List with Java](http://www.baeldung.com/find-list-element-java) - [Finding Max/Min of a List or Collection](http://www.baeldung.com/java-collection-min-max) - [Remove All Occurrences of a Specific Value from a List](https://www.baeldung.com/java-remove-value-from-list) -- [Removing the First Element of an Array](https://www.baeldung.com/java-array-remove-first-element)