package org.societies.css.directory;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.societies.api.schema.css.directory.CssAdvertisementRecord;
import org.societies.css.directory.model.CssAdvertisementRecordEntry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"TestCSSDirectory-context.xml"})
public class TestCCSDirectory extends AbstractTransactionalJUnit4SpringContextTests{
@Autowired
private CssDirectory cssDir;
@Before
public void setUp() throws Exception {
assertTrue(null != cssDir);
}
@After
public void tearDown() throws Exception {
}
@Test
@Rollback(true)
public void searchByIdtest() {
CssAdvertisementRecord cssAdvert1 = new CssAdvertisementRecord();
CssAdvertisementRecord cssAdvert2 = new CssAdvertisementRecord();
List<String> searchIdList = new ArrayList<String>();
cssAdvert1.setId("ignoreme.societies.local");
cssAdvert1.setName("I'll won't be found");
cssAdvert1.setUri(" ");
cssAdvert2.setId("findme.societies.local");
cssAdvert2.setName("I'll be found");
cssAdvert2.setUri(" ");
cssDir.addCssAdvertisementRecord(cssAdvert1);
cssDir.addCssAdvertisementRecord(cssAdvert2);
try {
searchIdList.add("findme.societies.local");
Future<List<CssAdvertisementRecord>> asynchResult = cssDir.searchByID(searchIdList);
List<CssAdvertisementRecord> result;
result = asynchResult.get();
assert(result != null);
assert(result.size() == 1);
assert(result.get(0).getId().contains("findme.societies.local"));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
@Rollback(true)
public void updatetest() {
CssAdvertisementRecord cssAdvert1 = new CssAdvertisementRecord();
CssAdvertisementRecord cssAdvert2 = new CssAdvertisementRecord();
CssAdvertisementRecord cssAdvertResult = new CssAdvertisementRecord();
List<String> searchIdList = new ArrayList<String>();
cssAdvert1.setId("test.societies.local");
cssAdvert1.setName("Old Record");
cssAdvert1.setUri(" ");
cssAdvert2.setId("test.societies.local");
cssAdvert2.setName("New Record");
cssAdvert2.setUri(" ");
cssDir.addCssAdvertisementRecord(cssAdvert1);
cssDir.updateCssAdvertisementRecord(cssAdvert1, cssAdvert2);
try {
searchIdList.add("test.societies.local");
Future<List<CssAdvertisementRecord>> asynchResult = cssDir.searchByID(searchIdList);
List<CssAdvertisementRecord> result;
result = asynchResult.get();
assert(result != null);
assert(result.size() == 1);
assert(result.get(0).getId().contains("test.societies.local"));
assert(result.get(0).getName().contains("New Record"));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}