diff --git a/patterns/README.md b/patterns/README.md
index bcd54a64b1..67d84154cb 100644
--- a/patterns/README.md
+++ b/patterns/README.md
@@ -1,3 +1,4 @@
###Relevant Articles:
- [A Guide to the Front Controller Pattern in Java](http://www.baeldung.com/java-front-controller-pattern)
- [Introduction to Intercepting Filter Pattern in Java](http://www.baeldung.com/intercepting-filter-pattern-in-java)
+- [Implementing the Template Method Pattern in Java](http://www.baeldung.com/template-method-pattern-in-java)
diff --git a/patterns/pom.xml b/patterns/pom.xml
index c40d7c58b7..68e5316f64 100644
--- a/patterns/pom.xml
+++ b/patterns/pom.xml
@@ -9,6 +9,7 @@
front-controller
intercepting-filter
+ template-method
@@ -51,4 +52,4 @@
3.0.0
9.4.0.v20161208
-
+
\ No newline at end of file
diff --git a/patterns/template-method/pom.xml b/patterns/template-method/pom.xml
index c3b6a084ac..4b863fe0a4 100644
--- a/patterns/template-method/pom.xml
+++ b/patterns/template-method/pom.xml
@@ -1,15 +1,17 @@
4.0.0
- com.baeldung.templatemethodpattern
- templatemethodpattern
+ com.baeldung.templatemethod
+ template-method
1.0
jar
-
- UTF-8
- 1.8
- 1.8
-
+
+ com.baeldung.patterns
+ patterns-parent
+ 1.0.0-SNAPSHOT
+ ..
+
+
junit
@@ -18,4 +20,18 @@
test
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.7.0
+
+
+
+
+ UTF-8
+ 1.8
+ 1.8
+
\ No newline at end of file
diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/FinalList.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/FinalList.java
new file mode 100644
index 0000000000..3824de619c
--- /dev/null
+++ b/testing-modules/mockito/src/test/java/org/baeldung/mockito/FinalList.java
@@ -0,0 +1,10 @@
+package org.baeldung.mockito;
+
+public class FinalList extends MyList {
+
+ @Override
+ public int size() {
+ return 1;
+ }
+
+}
diff --git a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockFinals.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockFinals.java
new file mode 100644
index 0000000000..5f064e1355
--- /dev/null
+++ b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockFinals.java
@@ -0,0 +1,35 @@
+package org.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/MyList.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyList.java
index 0b501225ad..4fcddb3164 100644
--- a/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyList.java
+++ b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyList.java
@@ -19,4 +19,7 @@ class MyList extends AbstractList {
// no-op
}
+ final public int finalMethod() {
+ return 0;
+ }
}
diff --git a/testing-modules/mockito/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/testing-modules/mockito/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 0000000000..ca6ee9cea8
--- /dev/null
+++ b/testing-modules/mockito/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline
\ No newline at end of file