Skip to content

Commit f7b03f3

Browse files
authored
Merge pull request #5 from djkeh/develop
2 parents 338e6cb + 6caffbc commit f7b03f3

File tree

9 files changed

+176
-0
lines changed

9 files changed

+176
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.fastcampus.javaoop;
2+
3+
import com.fastcampus.javaoop.logic.BubbleSort;
4+
import com.fastcampus.javaoop.logic.JavaSort;
5+
import com.fastcampus.javaoop.logic.Sort;
6+
7+
import java.util.Arrays;
8+
9+
public class Main {
10+
public static void main(String[] args) {
11+
Sort<String> sort = new JavaSort<>();
12+
13+
System.out.println("[result] " + sort.sort(Arrays.asList(args)));
14+
}
15+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.fastcampus.javaoop.logic;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class BubbleSort <T extends Comparable<T>> implements Sort<T> {
7+
8+
@Override
9+
public List<T> sort(List<T> list) {
10+
List<T> output = new ArrayList<>(list);
11+
12+
for (int i = output.size() - 1; i > 0; i--) {
13+
for (int j = 0; j < i; j++) {
14+
if (output.get(j).compareTo(output.get(j + 1)) > 0) {
15+
T temp = output.get(j);
16+
output.set(j, output.get(j + 1));
17+
output.set(j + 1, temp);
18+
}
19+
}
20+
}
21+
22+
return output;
23+
}
24+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.fastcampus.javaoop.logic;
2+
3+
import java.util.ArrayList;
4+
import java.util.Collections;
5+
import java.util.List;
6+
7+
public class JavaSort <T extends Comparable<T>> implements Sort<T> {
8+
9+
public List<T> sort(List<T> list) {
10+
List<T> output = new ArrayList<>(list);
11+
Collections.sort(output);
12+
13+
return output;
14+
}
15+
16+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.fastcampus.javaoop.logic;
2+
3+
import java.util.List;
4+
5+
public interface Sort <T extends Comparable<T>> {
6+
List<T> sort(List<T> list);
7+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.fastcampus.javaoop.service;
2+
3+
import com.fastcampus.javaoop.logic.JavaSort;
4+
import com.fastcampus.javaoop.logic.Sort;
5+
6+
import java.util.List;
7+
8+
public class SortService {
9+
10+
private final Sort<String> sort;
11+
12+
13+
public SortService(Sort<String> sort) {
14+
this.sort = sort;
15+
System.out.println("구현체: " + sort.getClass().getName());
16+
}
17+
18+
public List<String> doSort(List<String> list) {
19+
return sort.sort(list);
20+
}
21+
22+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.fastcampus.javaoop;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class MainTest {
8+
9+
@Test
10+
void main() {
11+
// Given
12+
String[] args = {"3", "1", "2"};
13+
14+
// When & Then
15+
Main.main(args);
16+
17+
}
18+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.fastcampus.javaoop.logic;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.util.List;
7+
8+
import static org.junit.jupiter.api.Assertions.*;
9+
10+
class BubbleSortTest {
11+
12+
@DisplayName("버블소트 - 리스트를 넣으면 정렬된 결과를 보여준다")
13+
@Test
14+
void given_List_WhenExecuting_ThenReturnSortedList() {
15+
// Given
16+
BubbleSort<Integer> bubbleSort = new BubbleSort<>();
17+
18+
19+
// When
20+
List<Integer> actual = bubbleSort.sort(List.of(3, 2, 4, 5, 1));
21+
22+
// Then
23+
assertEquals(List.of(1, 2, 3, 4, 5), actual);
24+
}
25+
26+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.fastcampus.javaoop.logic;
2+
3+
import org.junit.jupiter.api.DisplayName;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.util.List;
7+
8+
import static org.junit.jupiter.api.Assertions.*;
9+
10+
class JavaSortTest {
11+
@DisplayName("자바소트 - 리스트를 넣으면 정렬된 결과를 보여준다")
12+
@Test
13+
void given_List_WhenExecuting_ThenReturnSortedList() {
14+
// Given
15+
JavaSort<Integer> javaSort = new JavaSort<>();
16+
17+
// When
18+
List<Integer> actual = javaSort.sort(List.of(3, 2, 4, 5, 1));
19+
20+
// Then
21+
assertEquals(List.of(1, 2, 3, 4, 5), actual);
22+
}
23+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.fastcampus.javaoop.service;
2+
3+
import com.fastcampus.javaoop.logic.BubbleSort;
4+
import com.fastcampus.javaoop.logic.JavaSort;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.List;
8+
9+
import static org.junit.jupiter.api.Assertions.*;
10+
11+
class SortServiceTest {
12+
13+
private SortService sut = new SortService(new JavaSort<>());
14+
15+
@Test
16+
void test() {
17+
// Given
18+
19+
// When
20+
List<String> actual = sut.doSort(List.of("3", "2", "1"));
21+
22+
// Then
23+
assertEquals(List.of("1", "2", "3"), actual);
24+
}
25+
}

0 commit comments

Comments
 (0)