From 95cea46e5498207b2c9960ecea87203a356ceb88 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sun, 13 Sep 2020 09:40:31 +0200 Subject: [PATCH] Allow to set some arbitrary data on Streams --- .../org/dstadler/audio/stream/Stream.java | 18 +++++++++++- .../org/dstadler/audio/stream/StreamTest.java | 29 ++++++++++++------- 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/dstadler/audio/stream/Stream.java b/src/main/java/org/dstadler/audio/stream/Stream.java index 8cca811..e9999d2 100644 --- a/src/main/java/org/dstadler/audio/stream/Stream.java +++ b/src/main/java/org/dstadler/audio/stream/Stream.java @@ -36,6 +36,7 @@ public enum StreamType { private String user; private long startTimestamp; private long duration; + private String data; public String getName() { return name; @@ -122,6 +123,20 @@ public void setDuration(long duration) { this.duration = duration; } + public String getData() { + return data; + } + + /** + * Allows to attach some arbitrary data to a stream, e.g. + * to determine which radio-show was playing. + * + * @param data some application-specific data as string. + */ + public void setData(String data) { + this.data = data; + } + /** * Verifies if the Stream is valid and throws an exception if not. * @@ -157,6 +172,7 @@ public String toString() { ", tempoStrategy=" + tempoStrategy + ", tempo=" + tempo + ", streamType=" + streamType + - ", user=" + user; + ", user=" + user + + ", data=" + data; } } diff --git a/src/test/java/org/dstadler/audio/stream/StreamTest.java b/src/test/java/org/dstadler/audio/stream/StreamTest.java index 491c46d..fff1776 100644 --- a/src/test/java/org/dstadler/audio/stream/StreamTest.java +++ b/src/test/java/org/dstadler/audio/stream/StreamTest.java @@ -27,6 +27,7 @@ public void test() throws IOException { assertNull(stream.getStreamType()); assertNull(stream.getUser()); assertNull(stream.getPassword()); + assertNull(stream.getData()); assertEquals(0, stream.getStartTimestamp()); assertEquals(0, stream.getDuration()); TestHelpers.ToStringTest(stream); @@ -93,20 +94,28 @@ public void test() throws IOException { assertEquals("", stream.getUser()); assertNull(stream.getPassword()); - stream.setUser("someuser"); - try { - assertNull(stream.getPassword()); - - TestHelpers.ToStringTest(stream); - } catch (FileNotFoundException e) { - Assume.assumeNoException("Credentials file not available, cannot test for password", - e); - } - stream.setStartTimestamp(1L); stream.setDuration(2L); assertEquals(1L, stream.getStartTimestamp()); assertEquals(2L, stream.getDuration()); + + stream.setData("123"); + assertEquals("123", stream.getData()); + } + + @Test + public void testCredentials() throws IOException { + Stream stream = new Stream(); + + stream.setUser("someuser"); + try { + assertNull(stream.getPassword()); + + TestHelpers.ToStringTest(stream); + } catch (FileNotFoundException e) { + Assume.assumeNoException("Credentials file not available, cannot test for password", + e); + } } @Test