From aab9ba0ab8cb1c44a15ca06c5efe1408d8b507d9 Mon Sep 17 00:00:00 2001 From: ribeaudc <ribeaudc> Date: Mon, 5 Nov 2007 12:43:32 +0000 Subject: [PATCH] change: - finalyzing 'ChannelListTest' SVN: 2379 --- .../ch/systemsx/cisd/bds/hcs/ChannelList.java | 21 +++++++--- .../cisd/bds/hcs/ChannelListTest.java | 41 ++++++++++++++++++- 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java index e91ce72eeda..b800ae55518 100644 --- a/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java +++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java @@ -17,8 +17,8 @@ package ch.systemsx.cisd.bds.hcs; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import ch.systemsx.cisd.bds.DataStructureException; @@ -31,7 +31,7 @@ import ch.systemsx.cisd.bds.storage.INode; * * @author Christian Ribeaud */ -public final class ChannelList implements IStorable +public final class ChannelList implements IStorable, Iterable<Channel> { static final String NUMBER_OF_CHANNELS = "number_of_channels"; @@ -66,10 +66,10 @@ public final class ChannelList implements IStorable return new ChannelList(channels); } - /** Returns an unmodifiable list of <code>Channel</code>. */ - public final List<Channel> getChannels() + /** Returns the number of channels. */ + public final int getChannelCount() { - return Collections.unmodifiableList(channels); + return channels.size(); } // @@ -78,10 +78,19 @@ public final class ChannelList implements IStorable public final void saveTo(final IDirectory directory) { - directory.addKeyValuePair(NUMBER_OF_CHANNELS, channels.size() + ""); + directory.addKeyValuePair(NUMBER_OF_CHANNELS, getChannelCount() + ""); for (Channel channel : channels) { channel.saveTo(directory); } } + + // + // Iterable + // + + public final Iterator<Channel> iterator() + { + return channels.iterator(); + } } diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java index 563da064929..5ab934b08cf 100644 --- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java +++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java @@ -16,7 +16,9 @@ package ch.systemsx.cisd.bds.hcs; +import java.io.File; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import org.testng.annotations.Test; @@ -43,6 +45,20 @@ public final class ChannelListTest extends AbstractFileSystemTestCase return new ChannelList(list); } + private final static void checkFile(final File file) + { + assertTrue(file.getName().equals(ChannelList.NUMBER_OF_CHANNELS) || file.getName().startsWith(Channel.CHANNEL)); + } + + private final static void checkChannelFile(final File channelFile) + { + assertNotNull(channelFile); + assertTrue(channelFile.isDirectory()); + final File[] files = channelFile.listFiles(); + assertEquals(1, files.length); + assertEquals(files[0].getName(), Channel.WAVELENGTH); + } + @Test public final void testConstructor() { @@ -78,6 +94,29 @@ public final class ChannelListTest extends AbstractFileSystemTestCase final ChannelList channelList = createChannelList(); final IDirectory dir = NodeFactory.createDirectoryNode(workingDirectory); channelList.saveTo(dir); - + final File[] files = workingDirectory.listFiles(); + assertEquals(3, files.length); + for (File file : files) + { + checkFile(file); + if (file.getName().startsWith(Channel.CHANNEL)) + { + checkChannelFile(file); + } + } + } + + @Test(dependsOnMethods = "testSaveTo") + public final void testLoadFrom() + { + testSaveTo(); + final IDirectory dir = NodeFactory.createDirectoryNode(workingDirectory); + final ChannelList channelList = ChannelList.loadFrom(dir); + assertEquals(2, channelList.getChannelCount()); + final Iterator<Channel> iterator = channelList.iterator(); + Channel channel = iterator.next(); + assertEquals(123, channel.getWavelength()); + channel = iterator.next(); + assertEquals(456, channel.getWavelength()); } } \ No newline at end of file -- GitLab