Skip to content
Snippets Groups Projects
Commit aab9ba0a authored by ribeaudc's avatar ribeaudc
Browse files

change:

- finalyzing 'ChannelListTest'

SVN: 2379
parent 8279643e
No related branches found
No related tags found
No related merge requests found
......@@ -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();
}
}
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment