diff --git a/.gitignore b/.gitignore index 37b747d..3ae393a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /buildSrc/build/ /.idea/ /build/ +/**/build/** diff --git a/app/build.gradle.kts b/app/build.gradle.kts deleted file mode 100644 index dc482ed..0000000 --- a/app/build.gradle.kts +++ /dev/null @@ -1,10 +0,0 @@ -plugins { - id("elex-application") -} -application{ - mainClass.set("com.elex_project.sample.Application") -} -dependencies { - - -} diff --git a/app/src/main/java/com/elex_project/sample/package-info.java b/app/src/main/java/com/elex_project/sample/package-info.java deleted file mode 100644 index f7a784a..0000000 --- a/app/src/main/java/com/elex_project/sample/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.elex_project.sample; diff --git a/buildSrc/src/main/kotlin/elex-base.gradle.kts b/buildSrc/src/main/kotlin/elex-base.gradle.kts index 33e0f03..cb5018f 100644 --- a/buildSrc/src/main/kotlin/elex-base.gradle.kts +++ b/buildSrc/src/main/kotlin/elex-base.gradle.kts @@ -29,12 +29,11 @@ configurations { } tasks.jar { - manifest { // todo + manifest { attributes(mapOf( "Implementation-Title" to project.name, "Implementation-Version" to project.version, - "Implementation-Vendor" to "ELEX co.,pte.", - "Automatic-Module-Name" to "com.elex_project.${project.name}" + "Implementation-Vendor" to "ELEX co.,pte." )) } } @@ -61,7 +60,7 @@ tasks.javadoc { } dependencies { - implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) + //implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) implementation("org.slf4j:slf4j-api:1.7.30") implementation("org.jetbrains:annotations:21.0.1") diff --git a/buildSrc/src/main/kotlin/elex-java.gradle.kts b/buildSrc/src/main/kotlin/elex-java.gradle.kts new file mode 100644 index 0000000..3af10c0 --- /dev/null +++ b/buildSrc/src/main/kotlin/elex-java.gradle.kts @@ -0,0 +1,7 @@ +plugins { + id ("elex-base") +} + +dependencies { + +} diff --git a/lib/build.gradle.kts b/java-web-token/build.gradle.kts similarity index 100% rename from lib/build.gradle.kts rename to java-web-token/build.gradle.kts diff --git a/java-web-token/src/main/java/kr/pe/elex/examples/package-info.java b/java-web-token/src/main/java/kr/pe/elex/examples/package-info.java new file mode 100644 index 0000000..18376b4 --- /dev/null +++ b/java-web-token/src/main/java/kr/pe/elex/examples/package-info.java @@ -0,0 +1 @@ +package kr.pe.elex.examples; diff --git a/lib/src/main/java/com/elex_project/sample/package-info.java b/lib/src/main/java/com/elex_project/sample/package-info.java deleted file mode 100644 index f7a784a..0000000 --- a/lib/src/main/java/com/elex_project/sample/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.elex_project.sample; diff --git a/mockito/README.md b/mockito/README.md new file mode 100644 index 0000000..d8d98d5 --- /dev/null +++ b/mockito/README.md @@ -0,0 +1,5 @@ +# Mockito + +## mock() + +## when() diff --git a/mockito/build.gradle.kts b/mockito/build.gradle.kts new file mode 100644 index 0000000..5a37348 --- /dev/null +++ b/mockito/build.gradle.kts @@ -0,0 +1,8 @@ +plugins { + id("elex-java") +} + +dependencies { + // https://mvnrepository.com/artifact/org.mockito/mockito-core + testImplementation("org.mockito:mockito-core:3.11.2") +} diff --git a/mockito/src/main/java/kr/pe/elex/examples/Person.java b/mockito/src/main/java/kr/pe/elex/examples/Person.java new file mode 100644 index 0000000..32076a7 --- /dev/null +++ b/mockito/src/main/java/kr/pe/elex/examples/Person.java @@ -0,0 +1,12 @@ +package kr.pe.elex.examples; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class Person { + private String name; + private int age; + private String email; +} diff --git a/mockito/src/main/java/kr/pe/elex/examples/package-info.java b/mockito/src/main/java/kr/pe/elex/examples/package-info.java new file mode 100644 index 0000000..18376b4 --- /dev/null +++ b/mockito/src/main/java/kr/pe/elex/examples/package-info.java @@ -0,0 +1 @@ +package kr.pe.elex.examples; diff --git a/mockito/src/test/java/kr/pe/elex/examples/MockTest.java b/mockito/src/test/java/kr/pe/elex/examples/MockTest.java new file mode 100644 index 0000000..b9d14b3 --- /dev/null +++ b/mockito/src/test/java/kr/pe/elex/examples/MockTest.java @@ -0,0 +1,62 @@ +package kr.pe.elex.examples; + +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.*; + +public class MockTest { + @Test + void mock() { + Person jane = Mockito.mock(Person.class); + jane.setName("Jane"); + + assertNull(jane.getName()); + } + + @Test + void mock2() { + Person jane = Mockito.mock(Person.class); + when(jane.getName()).thenReturn("Jane"); + when(jane.getAge()).thenReturn(22); + + assertEquals("Jane", jane.getName()); + } + + @Test + void mock3() { + ArrayList list = Mockito.mock(ArrayList.class); + + when(list.get(anyInt())).thenReturn("Apple"); + + assertEquals("Apple", list.get(10)); + } + + @Test + void mock4() { + Person jane = Mockito.mock(Person.class); + when(jane.getName()).thenReturn("Jane"); + when(jane.getAge()).thenReturn(22); + + assertEquals("Jane", jane.getName()); + assertEquals(22, jane.getAge()); + + verify(jane, times(1)).getAge(); + + } + + @Test + void spy1() { + Person jane = Mockito.spy(new Person("Jane",22,"jane@example.com")); + when(jane.getName()).thenReturn("JANE"); + + assertEquals("JANE", jane.getName()); + assertEquals(22, jane.getAge()); + + } +} diff --git a/mockito/src/test/java/kr/pe/elex/examples/PersonListTest.java b/mockito/src/test/java/kr/pe/elex/examples/PersonListTest.java new file mode 100644 index 0000000..d3361fa --- /dev/null +++ b/mockito/src/test/java/kr/pe/elex/examples/PersonListTest.java @@ -0,0 +1,31 @@ +package kr.pe.elex.examples; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.*; + +class PersonListTest { + + private static List persons; + + @BeforeAll + static void beforeEach() { + persons = Mockito.mock(List.class); + persons.add(new Person("Charlie",11, "charlie@example.com")); + persons.add(new Person("Steve",34, "steve@example.com")); + persons.add(new Person("Jane",22, "jane@example.com")); + } + + @Test + void test() { + System.out.println(persons.get(0)); + + verify(persons).get(0); + } +} diff --git a/mockito/src/test/java/kr/pe/elex/examples/PersonTest.java b/mockito/src/test/java/kr/pe/elex/examples/PersonTest.java new file mode 100644 index 0000000..2c2b414 --- /dev/null +++ b/mockito/src/test/java/kr/pe/elex/examples/PersonTest.java @@ -0,0 +1,47 @@ +package kr.pe.elex.examples; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.when; + +class PersonTest { + + private Person charlie, steve; + + @BeforeEach + void beforeEach() { + charlie = Mockito.mock(Person.class); + when(charlie.getName()).thenReturn("Charlie"); + when(charlie.getAge()).thenReturn(11); + + doThrow(new IllegalArgumentException()) + .when(charlie).setName(eq("Brown")); + + steve = Mockito.spy(new Person("Steve",34,"steve@example.com")); + when(steve.getName()).thenReturn("STEVE"); + } + + @Test + void test1() { + assertEquals("Charlie", charlie.getName()); + assertEquals(11, charlie.getAge()); + } + + @Test + void test2() { + assertThrows(IllegalArgumentException.class, + () -> charlie.setName("Brown")); + } + + @Test + void test3() { + assertEquals("STEVE", steve.getName()); + assertEquals(34, steve.getAge()); + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index e3431ab..de79cc7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,2 @@ rootProject.name = "java-examples" -include("lib", "app") +include("java-web-token", "mockito")