package gov.nysenate.openleg.dao.base; import com.google.common.collect.Lists; import com.google.common.collect.MapDifference; import com.google.common.collect.Maps; import gov.nysenate.openleg.BaseTests; import gov.nysenate.openleg.dao.spotcheck.BillIdSpotCheckReportDao; import gov.nysenate.openleg.model.base.SessionYear; import gov.nysenate.openleg.model.entity.Chamber; import gov.nysenate.openleg.model.entity.SessionMember; import gov.nysenate.openleg.service.entity.member.data.MemberService; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.junit.Assert.assertEquals; public class SqlBaseDaoTests extends BaseTests { private static final Logger logger = LoggerFactory.getLogger(SqlBaseDaoTests.class); @Autowired private MemberService memberService; @Autowired private BillIdSpotCheckReportDao billIdSpotCheckReportDao; @Test public void testOrdinalMapTests() throws Exception { List<SessionMember> members1 = Lists.newArrayList(); List<SessionMember> members2 = Lists.newArrayList(); members1.add(memberService.getMemberByShortName("BALL", SessionYear.of(2013), Chamber.SENATE)); members1.add(memberService.getMemberByShortName("SAVINO", SessionYear.of(2013), Chamber.SENATE)); members1.add(memberService.getMemberByShortName("MARTINS", SessionYear.of(2013), Chamber.SENATE)); Map<SessionMember, Integer> map1 = Maps.newHashMap(); for (int i = 0; i < members1.size(); i++) { map1.put(members1.get(i), i); } members2.add(memberService.getMemberByShortName("BALL", SessionYear.of(2013), Chamber.SENATE)); members2.add(memberService.getMemberByShortName("MARTINS", SessionYear.of(2013), Chamber.SENATE)); members2.add(memberService.getMemberByShortName("ZELDIN", SessionYear.of(2013), Chamber.SENATE)); Map<SessionMember, Integer> map2 = Maps.newHashMap(); for (int i = 0; i < members2.size(); i++) { map2.put(members2.get(i), i); } MapDifference<SessionMember, Integer> diff = Maps.difference(map1, map2); logger.info("{}", diff); // Map<Integer, String> map1 = // SqlBaseDao.getOridinalMapFromList(Lists.newArrayList("moose", "cow", "sheep"), 1); // Map<Integer, String> map2 = // SqlBaseDao.getOridinalMapFromList(Lists.newArrayList("loser", "moose", "cow", "sheep"), 1); // MapDifference<Integer, String> mapDiff = Maps.difference(map1, map2); // logger.info("{}", mapDiff.entriesOnlyOnRight()); } @Test public void testHstoreStringToMap() { Map<String, String> expected = new HashMap<>(); expected.put("print_no", "S100"); Map<String, String> actual = billIdSpotCheckReportDao.hstoreStringToMap("\"print_no\"=>\"S100\""); assertEquals(expected, actual); expected.put("session_year", "2017"); actual = billIdSpotCheckReportDao.hstoreStringToMap("\"print_no\"=>\"S100\", \"session_year\"=>\"2017\""); assertEquals(expected, actual); expected = new HashMap<>(); expected.put("year", "2016"); expected.put("chamber", "senate"); expected.put("addendum", "DEFAULT"); expected.put("agenda_no", "5"); expected.put("committee_name", "Social Services"); String agendaHstore = "\"year\"=>\"2016\", \"chamber\"=>\"senate\", \"addendum\"=>\"DEFAULT\", \"agenda_no\"=>\"5\", \"committee_name\"=>\"Social Services\""; actual = billIdSpotCheckReportDao.hstoreStringToMap(agendaHstore); assertEquals(expected, actual); } }