diff --git a/.idea/libraries/mockito_core.xml b/.idea/libraries/mockito_core.xml
new file mode 100644
index 0000000..cfbb44a
--- /dev/null
+++ b/.idea/libraries/mockito_core.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2928d94..e6be3f1 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/Prog 3 A.iml b/Prog 3 A.iml
index bcdf07b..ae1bd5f 100644
--- a/Prog 3 A.iml
+++ b/Prog 3 A.iml
@@ -3,6 +3,7 @@
+
@@ -10,5 +11,6 @@
+
\ No newline at end of file
diff --git a/TestHelloWorld/ExecutorTest.java b/TestHelloWorld/ExecutorTest.java
new file mode 100644
index 0000000..c7d53ce
--- /dev/null
+++ b/TestHelloWorld/ExecutorTest.java
@@ -0,0 +1,33 @@
+
+
+import org.junit.jupiter.api.Test;
+
+
+import static org.mockito.Mockito.*;
+class ExecutorTest {
+
+ @Test
+ void printHelloWoldOnStdOut() {
+ HelloWorldWriter outMock = mock(OutWriter.class);
+ HelloWorldWriter errMock = mock(ErrorWriter.class);
+
+ Executor.printHelloWorld(outMock, errMock, false);
+
+ verify(outMock, times(1)).writeHelloWorld();
+ verify(errMock, times(0)).writeHelloWorld();
+
+ }
+
+ @Test
+ void printHelloWoldOnStdErr() {
+ HelloWorldWriter outMock = mock(OutWriter.class);
+ HelloWorldWriter errMock = mock(ErrorWriter.class);
+
+ Executor.printHelloWorld(outMock, errMock, true);
+
+ verify(outMock, times(0)).writeHelloWorld();
+ verify(errMock, times(1)).writeHelloWorld();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/ErrorWriter.java b/src/ErrorWriter.java
new file mode 100644
index 0000000..3b181cf
--- /dev/null
+++ b/src/ErrorWriter.java
@@ -0,0 +1,6 @@
+public class ErrorWriter implements HelloWorldWriter {
+
+ public void writeHelloWorld() {
+ System.err.println("Hello");
+ }
+}
diff --git a/src/Executor.java b/src/Executor.java
new file mode 100644
index 0000000..c08b304
--- /dev/null
+++ b/src/Executor.java
@@ -0,0 +1,15 @@
+public class Executor {
+ public static void main(String[] args){
+ printHelloWorld(new ErrorWriter(), new ErrorWriter(), true);
+ }
+ public static void printHelloWorld(HelloWorldWriter writer1,
+ HelloWorldWriter writer2, boolean second){
+
+ if(second){
+ writer2.writeHelloWorld();
+
+ } else{
+ writer1.writeHelloWorld();
+ }
+ }
+}
diff --git a/src/HelloWorld.java b/src/HelloWorld.java
deleted file mode 100644
index 9005af0..0000000
--- a/src/HelloWorld.java
+++ /dev/null
@@ -1,6 +0,0 @@
-public class HelloWorld {
- public static void main(String[] args) {
-
- System.out.println("Hello World!");
- }
-}
diff --git a/src/HelloWorldWriter.java b/src/HelloWorldWriter.java
new file mode 100644
index 0000000..bc4efa5
--- /dev/null
+++ b/src/HelloWorldWriter.java
@@ -0,0 +1,6 @@
+
+public interface HelloWorldWriter
+{
+ void writeHelloWorld();
+
+}
diff --git a/src/OutWriter.java b/src/OutWriter.java
new file mode 100644
index 0000000..c5b713e
--- /dev/null
+++ b/src/OutWriter.java
@@ -0,0 +1,8 @@
+
+public class OutWriter implements HelloWorldWriter{
+
+ public void writeHelloWorld() {
+ System.out.println("Hello");
+ }
+
+}