From 005e2e6b37c9b557992005fb040848db5dcf3f40 Mon Sep 17 00:00:00 2001 From: josdem Date: Sat, 27 Apr 2024 17:32:49 -0400 Subject: [PATCH] Adding stream merger solution --- .../src/main/java/com/josdem/kata/CustomStream.java | 7 ++++++- .../src/main/java/com/josdem/kata/StreamMerger.java | 8 +++++--- .../src/test/java/com/josdem/kata/StreamMergerTest.java | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/stream-merger/src/main/java/com/josdem/kata/CustomStream.java b/stream-merger/src/main/java/com/josdem/kata/CustomStream.java index ee7f95d..f475d76 100644 --- a/stream-merger/src/main/java/com/josdem/kata/CustomStream.java +++ b/stream-merger/src/main/java/com/josdem/kata/CustomStream.java @@ -1,6 +1,6 @@ package com.josdem.kata; -public class CustomStream { +public class CustomStream implements Comparable{ private final int id; public CustomStream(int id) { this.id = id; @@ -9,4 +9,9 @@ public CustomStream(int id) { public int getId() { return id; } + + @Override + public int compareTo(CustomStream that) { + return Integer.compare(this.id, that.id); + } } diff --git a/stream-merger/src/main/java/com/josdem/kata/StreamMerger.java b/stream-merger/src/main/java/com/josdem/kata/StreamMerger.java index f2017bc..b796414 100644 --- a/stream-merger/src/main/java/com/josdem/kata/StreamMerger.java +++ b/stream-merger/src/main/java/com/josdem/kata/StreamMerger.java @@ -2,11 +2,13 @@ import java.util.List; import java.util.Set; +import java.util.TreeSet; public record StreamMerger(Set streams) { - public List mergeInto(CustomOutputStream stream) { - streams.forEach(it -> stream.storeValue(it.getId())); - return stream.getList(); + public Set mergeInto(CustomOutputStream stream) { + TreeSet treeSet = new TreeSet<>(streams); + treeSet.forEach(item -> stream.storeValue(item.getId())); + return treeSet; } } diff --git a/stream-merger/src/test/java/com/josdem/kata/StreamMergerTest.java b/stream-merger/src/test/java/com/josdem/kata/StreamMergerTest.java index 713bda9..77bfa7f 100644 --- a/stream-merger/src/test/java/com/josdem/kata/StreamMergerTest.java +++ b/stream-merger/src/test/java/com/josdem/kata/StreamMergerTest.java @@ -31,11 +31,11 @@ void shouldGetOrderedStreamCollection() { streams.add(cst3); StreamMerger streamMerger = new StreamMerger(streams); - List result = streamMerger.mergeInto(new CustomOutputStream()); + Set result = streamMerger.mergeInto(new CustomOutputStream()); assertEquals(3, result.size(), "should contain three streams"); - assertEquals(0, result.get(0), "should have cst3 value"); - assertEquals(1, result.get(1), "should have cst2 value"); - assertEquals(2, result.get(2), "should have cst1 value"); + assertEquals(cst3, result.toArray()[0], "should have cst3 value"); + assertEquals(cst2, result.toArray()[1], "should have cst2 value"); + assertEquals(cst1, result.toArray()[2], "should have cst1 value"); } }