/* * Copyright (C) 2001 - 2005 ZJU Online Judge, All Rights Reserved. */ package cn.edu.zju.acm.onlinejudge.persistence.sql; import junit.framework.TestCase; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import cn.edu.zju.acm.onlinejudge.bean.Configuration; /** * <p>Tests for AuthorizationPersistenceImpl.</p> * * @version 2.0 * @author ZOJDEV */ public class ConfigurationPersistenceImplTest extends TestCase { /** * Setup. * @throws Exception to JUnit */ protected void setUp() throws Exception { DatabaseHelper.resetAllTables(false); List configurations = new ArrayList(); Configuration configuration1 = new Configuration(); configuration1.setName("n1"); configuration1.setValue("v1"); configuration1.setDescription("d1"); Configuration configuration2 = new Configuration(); configuration2.setName("n2"); configuration2.setValue("v2"); configuration2.setDescription("d2"); Configuration configuration3 = new Configuration(); configuration3.setName("n3"); configuration3.setValue("v3"); configuration3.setDescription("d3"); configurations.add(configuration1); configurations.add(configuration2); configurations.add(configuration3); new ConfigurationPersistenceImpl().setConfigurations(configurations, 1); } /** * Tear down. * @throws Exception to JUnit */ protected void tearDown() throws Exception { DatabaseHelper.clearTable("configuration"); } /** * Tests getConfigurations method * @throws Exception to JUnit */ public void testGetConfigurations() throws Exception { ConfigurationPersistenceImpl persistence = new ConfigurationPersistenceImpl(); List configurations = persistence.getConfigurations(); assertEquals("size is wrong", 3, configurations.size()); Set nameSet = new HashSet(Arrays.asList(new String[] {"n1", "n2", "n3"})); Set valueSet = new HashSet(Arrays.asList(new String[] {"v1", "v2", "v3"})); Set descSet = new HashSet(Arrays.asList(new String[] {"d1", "d2", "d3"})); for (Iterator it = configurations.iterator(); it.hasNext();) { Configuration configuration = (Configuration) it.next(); assertTrue("wrong name", nameSet.contains(configuration.getName())); assertTrue("wrong value", valueSet.contains(configuration.getValue())); assertTrue("wrong description", descSet.contains(configuration.getDescription())); nameSet.remove(configuration.getName()); valueSet.remove(configuration.getValue()); descSet.remove(configuration.getDescription()); } } /** * Tests setConfigurations method * @throws Exception to JUnit */ public void testSetConfigurations1() throws Exception { List configurations = new ArrayList(); Configuration configuration4 = new Configuration(); configuration4.setName("n4"); configuration4.setValue("v4"); configuration4.setDescription("d4"); Configuration configuration5 = new Configuration(); configuration5.setName("n5"); configuration5.setValue("v5"); configuration5.setDescription("d5"); configurations.add(configuration4); configurations.add(configuration5); ConfigurationPersistenceImpl persistence = new ConfigurationPersistenceImpl(); persistence.setConfigurations(configurations, 1); configurations = persistence.getConfigurations(); assertEquals("size is wrong", 5, configurations.size()); Set nameSet = new HashSet(Arrays.asList(new String[] {"n1", "n2", "n3", "n4", "n5"})); Set valueSet = new HashSet(Arrays.asList(new String[] {"v1", "v2", "v3", "v4", "v5"})); Set descSet = new HashSet(Arrays.asList(new String[] {"d1", "d2", "d3", "d4", "d5"})); for (Iterator it = configurations.iterator(); it.hasNext();) { Configuration configuration = (Configuration) it.next(); assertTrue("wrong name", nameSet.contains(configuration.getName())); assertTrue("wrong value", valueSet.contains(configuration.getValue())); assertTrue("wrong description", descSet.contains(configuration.getDescription())); nameSet.remove(configuration.getName()); valueSet.remove(configuration.getValue()); descSet.remove(configuration.getDescription()); } } /** * Tests setConfigurations method * @throws Exception to JUnit */ public void testSetConfigurations2() throws Exception { List configurations = new ArrayList(); Configuration configuration1 = new Configuration(); configuration1.setName("n1"); configuration1.setValue("nv1"); configuration1.setDescription("nd1"); Configuration configuration4 = new Configuration(); configuration4.setName("n4"); configuration4.setValue("v4"); configuration4.setDescription("d4"); configurations.add(configuration1); configurations.add(configuration4); ConfigurationPersistenceImpl persistence = new ConfigurationPersistenceImpl(); persistence.setConfigurations(configurations, 1); configurations = persistence.getConfigurations(); assertEquals("size is wrong", 4, configurations.size()); Set nameSet = new HashSet(Arrays.asList(new String[] {"n1", "n2", "n3", "n4"})); Set valueSet = new HashSet(Arrays.asList(new String[] {"nv1", "v2", "v3", "v4"})); Set descSet = new HashSet(Arrays.asList(new String[] {"nd1", "d2", "d3", "d4"})); for (Iterator it = configurations.iterator(); it.hasNext();) { Configuration configuration = (Configuration) it.next(); assertTrue("wrong name", nameSet.contains(configuration.getName())); assertTrue("wrong value", valueSet.contains(configuration.getValue())); assertTrue("wrong description", descSet.contains(configuration.getDescription())); nameSet.remove(configuration.getName()); valueSet.remove(configuration.getValue()); descSet.remove(configuration.getDescription()); } } }