Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mport static org.mockito.Matchers.any;
- import static org.mockito.Matchers.eq;
- import static org.mockito.Matchers.startsWith;
- import static org.mockito.Mockito.mock;
- import static org.mockito.Mockito.when;
- import java.sql.ResultSet;
- import java.text.ParseException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.junit.Assert;
- import org.junit.Test;
- import org.mockito.invocation.InvocationOnMock;
- import org.mockito.stubbing.Answer;
- import org.springframework.dao.DataAccessException;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
- import com.edb.cps.common.business.dao.exception.SystemDAOException;
- import com.edb.cps.common.business.vo.CustomerVO;
- import com.edb.cps.common.business.vo.SortVO;
- import com.edb.cps.services.account.business.vo.AccountVO;
- import com.edb.cps.services.agreement.business.dao.exception.AgreementDAOException;
- import com.edb.cps.services.agreement.business.dao.implementation.TestDataMama.AvtaleData;
- import com.edb.cps.services.agreement.business.dao.implementation.TestDataMama.RolesData;
- import com.edb.cps.services.agreement.business.vo.AgreementDetailsVO;
- import com.edb.cps.services.agreement.business.vo.AgreementGroupVO;
- import com.edb.cps.services.agreement.business.vo.AgreementSearchVO;
- import com.edb.cps.services.system.business.vo.SystemRoleVO;
- import com.edb.transigo.framework.control.ClientContext;
- public class AgreementJDBCDAOTest {
- @SuppressWarnings({ "serial", "unchecked" })
- @Test
- public void testSearchAgreementDetails() throws SystemDAOException, AgreementDAOException, DataAccessException, ParseException {
- AgreementJDBCDAO agreementJDBCDAO = new AgreementJDBCDAO();
- final TestData testData = new TestData();
- ClientContext cc = mock(ClientContext.class);
- String orgId = String.valueOf(testData.avtale.getKundeData1().getForetaksnr());
- when(cc.getOrgId()).thenReturn(orgId);
- JdbcTemplate jdbcTemplate = mock(JdbcTemplate.class);
- when(jdbcTemplate.queryForObject(
- eq("SELECT a.avtale_id AS ID, a.avtalenavn AS ANAME, a.kunde_id AS CLIENTNO, a.aktivdato AS REGDATE, a.bank_id AS BANKID, a.avtalestatus_id AS STATUS, a.produkt_id AS PRODUCT, a.avtaletype_id AS ATYPE, a.fastgebyrkonto_id AS REGFEES, a.gebyrkonto_id AS VARFEES, "
- + "k.navn AS CNAME, k.foretaksnr AS ORGNUM, a.telefon AS PHONE, a.telefax AS FAX, a.kontaktperson AS CONTACT, k.emailadresse AS EMAIL, k.adresse1 AS ADDR1, k.adresse2 AS ADDR2, k.adresse3 AS ADDR3, k.ansvarsted_id as RESSITE, "
- + "p.navn AS PNAVN, ans.navn as ANSNAVN "
- + "FROM es.avtale a, es.kunde k, es.produkt p, es.ansvarsted ans WHERE a.kunde_id = k.kunde_id AND a.produkt_id = p.produkt_id AND k.ansvarsted_id = ans.ansvarsted_id (+) AND k.bank_id = ans.bank_id (+) AND a.avtale_id = ? AND a.bank_id = ? "),
- any(ParameterizedRowMapper.class),
- eq(testData.avtale.getId().longValue()),
- eq(orgId)
- )).thenAnswer(new Answer<AgreementDetailsVO>() {
- public AgreementDetailsVO answer(InvocationOnMock invocation) throws Throwable {
- ParameterizedRowMapper<AgreementDetailsVO> mapper = (ParameterizedRowMapper<AgreementDetailsVO>) invocation.getArguments()[1];
- ResultSet rs = mock(ResultSet.class);
- when(rs.getInt("ID")).thenReturn(testData.avtale.getId().intValue());
- when(rs.getString("ANAME")).thenReturn(testData.avtale.getAname());
- when(rs.getInt("CLIENTNO")).thenReturn(testData.avtale.getClientNo());
- when(rs.getDate("REGDATE")).thenReturn(testData.avtale.getRegDate());
- when(rs.getInt("BANKID")).thenReturn(testData.avtale.getBankid());
- when(rs.getString("STATUS")).thenReturn(testData.avtale.getStatus());
- when(rs.getInt("PRODUCT")).thenReturn(testData.avtale.getProduktData().getProduktId().intValue());
- when(rs.getString("PNAVN")).thenReturn(testData.avtale.getPnavn());
- when(rs.getString("ATYPE")).thenReturn(testData.avtale.getAtype());
- when(rs.getString("REGFEES")).thenReturn(testData.avtale.getRegfees());
- when(rs.getString("VARFEES")).thenReturn(testData.avtale.getVarfees());
- // customer data
- when(rs.getString("CNAME")).thenReturn(testData.avtale.getKundeData1().getNavn());
- when(rs.getLong("ORGNUM")).thenReturn(testData.avtale.getKundeData1().getForetaksnr().longValue());
- when(rs.getString("PHONE")).thenReturn(testData.avtale.getPhone());
- when(rs.getString("FAX")).thenReturn(testData.avtale.getFax());
- when(rs.getString("CONTACT")).thenReturn(testData.avtale.getContact());
- when(rs.getString("EMAIL")).thenReturn(testData.avtale.getKundeData1().getEmailadresse());
- when(rs.getString("RESSITE")).thenReturn(String.valueOf(testData.avtale.getKundeData1().getAnsvarsted().getAnsvarstedId()));
- when(rs.getString("ANSNAVN")).thenReturn(testData.avtale.getKundeData1().getAnsvarsted().getNavn());
- when(rs.getString("ADDR1")).thenReturn(testData.avtale.getKundeData1().getAdresse1());
- when(rs.getString("ADDR2")).thenReturn(testData.avtale.getKundeData1().getAdresse2());
- when(rs.getString("ADDR3")).thenReturn(testData.avtale.getKundeData1().getAdresse3());
- return mapper.mapRow(rs, 0);
- }
- });
- // -----------------------------------------------
- when(jdbcTemplate.queryForList(
- "SELECT konto_id FROM es.konto WHERE btpmerket = 1 AND eskontotype_id = 100 AND kunde_id in (SELECT kunde_id FROM es.avtale WHERE avtale_id = ?) ORDER BY konto_id ASC",
- testData.avtale.getId()
- )).thenReturn(
- new ArrayList<Map<String, Object>>() {{
- add(new HashMap<String, Object>() {{
- put("KONTO_ID", testData.avtale.getKundeData1().getKontoData().getKontoId());
- }}
- );}
- });
- // -----------------------------------------------
- when(jdbcTemplate.queryForLong(
- startsWith("SELECT COUNT(*) FROM es.avtale WHERE hovedavtale_id = ? AND avtale_id != hovedavtale_id"),
- eq(testData.avtale.getId().longValue())
- )).thenReturn(testData.noOfSubsidiaryAgreements);
- // -----------------------------------------------
- when(jdbcTemplate.queryForLong("SELECT COUNT(*) FROM ES.Bruker WHERE Avtale_ID = ? ", new Object[] { testData.avtale.getId().longValue() })).thenReturn(testData.noOfAgreementUsers);
- // -----------------------------------------------
- when(jdbcTemplate.queryForList(
- "SELECT avtalegruppe_id, navn FROM es.avtalegruppe WHERE avtalegruppe_id = (SELECT avtalegruppe_id FROM es.avtale WHERE avtale_id = ?)",
- testData.avtale.getId().longValue()
- )).thenReturn(new ArrayList<Map<String, Object>>() {{
- add(new HashMap<String, Object>() {
- {
- put("AVTALEGRUPPE_ID", testData.avtale.getAvtalegruppeData().getAvtalegruppeId());
- put("NAVN", testData.avtale.getAvtalegruppeData().getNavn());
- }
- });}
- });
- // -----------------------------------------------
- when(jdbcTemplate.queryForList(
- eq("select * from es.avtalegruppe where bankprodukt_id in (select bankprodukt_id from es.bankprodukt where produkt_id = ? and bank_id = ?) order by navn"),
- eq(testData.avtale.getProduktData().getProduktId().intValue()),
- eq(orgId)
- )).thenReturn(new ArrayList<Map<String, Object>>() {{
- add(new HashMap<String, Object>() {
- {
- put("AVTALEGRUPPE_ID", testData.bankProduktAvtaleGruppe.getAvtalegruppeId());
- put("NAVN", testData.bankProduktAvtaleGruppe.getNavn());
- put("BANKPRODUKT_ID", testData.bankProduktAvtaleGruppe.getBankproduktId());
- }
- });}
- });
- // -----------------------------------------------
- when(jdbcTemplate.queryForMap(
- "SELECT avtale_id, avtalenavn FROM es.avtale WHERE avtale_id = (SELECT hovedavtale_id FROM es.avtale WHERE avtale_id = ?)",
- testData.avtale.getId().longValue()
- )).thenReturn(new HashMap<String, Object>() {
- {
- put("avtale_id", testData.avtale.getHovedavtale().getId());
- put("avtalenavn", testData.avtale.getHovedavtale().getAname());
- }
- });
- // -----------------------------------------------
- when(jdbcTemplate.queryForList(
- "SELECT A.Kunde_ID FROM ES.Kunde A, ES.Avtale B, ES.BankProdukt C WHERE A.Kunde_ID = B.Kunde_ID AND B.Produkt_ID = C.Produkt_ID AND C.Bank_ID = ? AND B.HovedAvtale_ID = ? ORDER BY A.Navn ",
- orgId,
- testData.avtale.getId().longValue()
- )).thenReturn(
- new ArrayList<Map<String, Object>>() {{
- add(new HashMap<String, Object>() {
- {
- put("KUNDE_ID", testData.avtale.getKundeData1().getKundeId());
- }
- });
- add(new HashMap<String, Object>() {
- {
- put("KUNDE_ID", testData.avtale.getKundeData2().getKundeId());
- }
- });
- }
- });
- // -----------------------------------------------
- when(jdbcTemplate.queryForList(
- startsWith("SELECT A.Aksess AS AVTALE_AKSESS, A.Kunde_ID AS KUNDE_ID, D.Navn AS KUNDE_NAVN, A.ESKontoType_ID AS ESKONTOTYPE_ID, B.Tilgang_ID AS TILGANG_ID, A.Konto_ID AS KONTO_ID, A.Navn AS KONTO_NAVN, A.Valutakode AS VALUTAKODE, '0', '0', B.KonteringFakt AS FAKT, B.KonteringLonn AS LONN, " +
- "B.KonteringRemitering AS REMIT, B.DagligKontoInfo AS DAGLIG, B.OCRretur AS OCR, E.Navn AS KONTOTYPE_NAVN, A.GodkjentType AS GODKJENT "
- + "FROM ES.Konto A, ES.Avtale_Konto B, ES.Kunde D, ES.ESKontoType E WHERE B.Konto_ID = A.Konto_ID AND A.ESKontoType_ID = E.KontoType_ID AND A.Kunde_ID IN "),
- eq(testData.avtale.getKundeData1().getKundeId() + "," + testData.avtale.getKundeData2().getKundeId() + "," + testData.avtale.getClientNo()),
- eq(orgId),
- eq(testData.avtale.getId().longValue())
- )).thenReturn(new ArrayList<Map<String, Object>>() {{
- add(new HashMap<String, Object>() {
- {
- put("KONTO_NAVN", testData.avtale.getKundeData1().getKontoData().getNavn());
- put("KONTO_ID", testData.avtale.getKundeData1().getKontoData().getKontoId());
- put("VALUTAKODE", testData.avtale.getKundeData1().getKontoData().getValutakode());
- put("AVTALE_AKSESS", testData.avtale.getKundeData1().getKontoData().getAksess());
- put("GODKJENT", testData.avtale.getKundeData1().getKontoData().getGodkjenttype());
- put("REMIT", testData.avtale.getAvtaleKontoData().getKonteringRemitering());
- put("OCR", testData.avtale.getAvtaleKontoData().getOCRretur());
- put("LONN", testData.avtale.getAvtaleKontoData().getKonteringLonn());
- put("FAKT", testData.avtale.getAvtaleKontoData().getKonteringFakt());
- put("KONTOTYPE_NAVN", testData.avtale.getKundeData1().getKontoData().getEsKontoTypeData().getNavn());
- put("KUNDE_NAVN", testData.avtale.getKundeData1().getNavn());
- }
- });
- }});
- // -----------------------------------------------
- when(jdbcTemplate.query(
- eq("SELECT r.rolle_id, rt.tjeneste_id, r.kortnavn, br.navn, r.tilgangnivaa, r.produkt_id FROM es.rolle r, es.bankprodukt bp, es.bankrolle br, es.rolle_tjeneste rt, es.avtale_rolle ar WHERE bp.bank_id = ? AND bp.bankprodukt_id = br.bankprodukt_id AND r.rolle_id = br.rolle_id AND r.produkt_id = bp.produkt_id AND r.rolletype_id NOT IN (2, 4, 9) AND rt.rolle_id(+) = r.rolle_id AND r.tilgangnivaa IN (1, 4, 5) AND r.rolle_id = ar.rolle_id AND ar.avtale_id = ? ORDER BY r.kortnavn"),
- any(ParameterizedRowMapper.class),
- eq(orgId),
- eq(testData.avtale.getId().longValue())
- )).thenAnswer(new Answer<List<SystemRoleVO>>() {
- public List<SystemRoleVO> answer(InvocationOnMock invocation) throws Throwable {
- ParameterizedRowMapper<SystemRoleVO> mapper = (ParameterizedRowMapper<SystemRoleVO>) invocation.getArguments()[1];
- ResultSet rs = mock(ResultSet.class);
- when(rs.getInt("rolle_id")).thenReturn(testData.role.getRolleId());
- when(rs.getInt("tjeneste_id")).thenReturn(testData.role.getTjenesteId());
- when(rs.getString("kortnavn")).thenReturn(testData.role.getKortnavn());
- when(rs.getInt("produkt_id")).thenReturn(testData.role.getProduktId());
- when(rs.getString("navn")).thenReturn(testData.role.getNavn());
- when(rs.getInt("tilgangnivaa")).thenReturn(testData.role.getTilgangnivaa());
- return Collections.singletonList(mapper.mapRow(rs, 0));
- }
- });
- // -----------------------------------------------
- agreementJDBCDAO.setJdbcTemplate(jdbcTemplate);
- AgreementSearchVO agreementSearchVo = new AgreementSearchVO();
- SortVO accountSortVO = new SortVO("KONTO_NAVN", "ASC");
- agreementSearchVo.setAccountSortVO(accountSortVO);
- agreementSearchVo.setAgreementNumber(testData.avtale.getId().longValue());
- AgreementDetailsVO result = agreementJDBCDAO.searchAgreementDetails(cc, agreementSearchVo);
- //----------------------
- Assert.assertEquals(testData.avtale.getId().intValue(), result.getAgreementId());
- Assert.assertEquals(testData.avtale.getBankid().intValue(), result.getBankId());
- Assert.assertEquals(testData.avtale.getProduktData().getProduktId().intValue(), result.getProductId());
- Assert.assertEquals(testData.avtale.getPnavn(), result.getProductName());
- Assert.assertEquals(testData.avtale.getClientNo().intValue(), result.getCustomerId());
- Assert.assertEquals(0, result.getCustomerNumber());
- Assert.assertEquals(0, result.getCustomerIdLong());
- Assert.assertEquals(null, result.getCustomerName());
- Assert.assertEquals(0, result.getClientNumber());
- Assert.assertEquals(testData.avtale.getAtype(), result.getAgreementTypeId());
- Assert.assertEquals(testData.avtale.getStatus(), result.getAgreementStatusId());
- Assert.assertEquals(testData.avtale.getAvtalegruppeData().getAvtalegruppeId().intValue(), result.getPriceGroupId());
- Assert.assertEquals(testData.avtale.getAvtalegruppeData().getNavn(), result.getPriceGroupName());
- Assert.assertEquals(null, result.getInvoiceAccountFixed());
- Assert.assertEquals(null, result.getInvoiceAccountVariable());
- Assert.assertEquals(testData.avtale.getAname(), result.getAgreementName());
- Assert.assertEquals(null, result.getPhone());
- Assert.assertEquals(null, result.getFax());
- Assert.assertEquals(0, result.getCreditNumber());
- Assert.assertEquals(testData.avtale.getRegDate(), result.getRegistrationDate());
- Assert.assertEquals(null, result.getShortNameVOList());
- AccountVO accountVo = result.getAccountVOList().getAccounts().next();
- checkAccountVo(testData, accountVo);
- Assert.assertEquals(null, result.getNewAccountVOList());
- Assert.assertEquals(0, result.getAccountFees().getAccountsCollection().size());
- SystemRoleVO role = result.getSystemRoles().getRoles().next();
- checkRole(testData, role);
- Assert.assertEquals(null, result.getOrganisationNo());
- Assert.assertEquals(testData.avtale.getHovedavtale().getId().longValue(), result.getParentAgreementId());
- //--------------- details ----------
- Assert.assertEquals(testData.avtale.getRegfees(), result.getAccountNumberRegularFees());
- Assert.assertEquals(testData.avtale.getVarfees(), result.getAccountNumberVariableFees());
- CustomerVO customerVO = result.getCustomerVO();
- Assert.assertEquals(testData.avtale.getKundeData1().getNavn(), customerVO.getCustomerName());
- checkCustomerVo(testData, customerVO);
- Assert.assertEquals(testData.avtale.getHovedavtale().getAname(), result.getParentAgreementName());
- Assert.assertEquals(testData.noOfSubsidiaryAgreements.intValue(), result.getNoOfSubsidiaryAgreements());
- Assert.assertEquals(testData.noOfAgreementUsers.intValue(), result.getNoOfAgreementUsers());
- Assert.assertEquals(1, result.getAgreementGroupList().size());
- AgreementGroupVO agreementGroupVO = result.getAgreementGroupList().iterator().next();
- checkAgreementGroupVo(testData, agreementGroupVO);
- }
- private void checkAgreementGroupVo(final TestData testData, AgreementGroupVO agreementGroupVO) {
- Assert.assertEquals(testData.bankProduktAvtaleGruppe.getAvtalegruppeId().longValue(), agreementGroupVO.getAgreementGroupId());
- Assert.assertEquals(testData.bankProduktAvtaleGruppe.getBankproduktId().longValue(), agreementGroupVO.getBankProduktId());
- Assert.assertEquals(testData.bankProduktAvtaleGruppe.getNavn(), agreementGroupVO.getAgreementGroupName());
- }
- private void checkCustomerVo(final TestData testData, CustomerVO customerVO) {
- Assert.assertEquals(
- String.valueOf(testData.avtale.getKundeData1().getAnsvarsted().getAnsvarstedId())+" "+testData.avtale.getKundeData1().getAnsvarsted().getNavn(),
- customerVO.getResponsibleSite()
- );
- Assert.assertEquals(testData.avtale.getKundeData1().getForetaksnr().longValue(), customerVO.getOrganizationNumber());
- Assert.assertEquals(testData.avtale.getPhone(), customerVO.getPhoneNumber());
- Assert.assertEquals(testData.avtale.getFax(), customerVO.getFax());
- Assert.assertEquals(testData.avtale.getContact(), customerVO.getContactPerson());
- Assert.assertEquals(testData.avtale.getKundeData1().getEmailadresse(), customerVO.getEmail());
- Assert.assertEquals(testData.avtale.getKundeData1().getAdresse1(), customerVO.getAddressVO().getAddr1());
- Assert.assertEquals(testData.avtale.getKundeData1().getAdresse2(), customerVO.getAddressVO().getAddr2());
- Assert.assertEquals(testData.avtale.getKundeData1().getAdresse3(), customerVO.getAddressVO().getAddr3());
- Assert.assertEquals("", customerVO.getAddressVO().getTown());
- Assert.assertEquals("", customerVO.getAddressVO().getPostNo());
- Assert.assertEquals("", customerVO.getAddressVO().getCountryCode());
- Assert.assertEquals("", customerVO.getAddressVO().getCountry());
- }
- private void checkRole(final TestData testData, SystemRoleVO role) {
- Assert.assertEquals(testData.role.getNavn(), role.getName());
- Assert.assertEquals(testData.role.getRolleId().intValue(), role.getRoleId());
- Assert.assertEquals(testData.role.getKortnavn(), role.getShortName());
- Assert.assertEquals(testData.role.getProduktId().intValue(), role.getProductId());
- Assert.assertEquals(testData.role.getTilgangnivaa().intValue(), role.getAccessLevel());
- Assert.assertEquals(testData.role.getTjenesteId().intValue(), role.getServiceId());
- }
- private void checkAccountVo(final TestData testData, AccountVO accountVo) {
- Assert.assertEquals(testData.avtale.getKundeData1().getKontoData().getKontoId(), accountVo.getNumber());
- Assert.assertEquals(null, accountVo.getAlias());
- Assert.assertEquals(testData.avtale.getKundeData1().getKontoData().getValutakode(), accountVo.getCurrency());
- Assert.assertEquals(null, accountVo.getBusinessNumber());
- Assert.assertEquals(testData.avtale.getKundeData1().getKontoData().getEsKontoTypeData().getNavn(), accountVo.getType());
- Assert.assertEquals(testData.avtale.getKundeData1().getNavn(), accountVo.getCustomerName());
- Assert.assertEquals(null, accountVo.getCoreAccountName());
- Assert.assertEquals(testData.avtale.getKundeData1().getKontoData().getNavn(), accountVo.getAccountName());
- Assert.assertEquals(testData.avtale.getId().longValue(), accountVo.getAgreementId());
- Assert.assertEquals(testData.avtale.getKundeData1().getKontoData().getAksess(), accountVo.getAccess());
- Assert.assertEquals(testData.avtale.getAvtaleKontoData().getKonteringFakt(), accountVo.getSingle());
- Assert.assertEquals(testData.avtale.getAvtaleKontoData().getKonteringLonn(), accountVo.getPayroll());
- Assert.assertEquals(testData.avtale.getAvtaleKontoData().getKonteringRemitering(), accountVo.getDirectRem());
- Assert.assertEquals(testData.avtale.getAvtaleKontoData().getOCRretur().intValue() == 1, accountVo.isOcr());
- Assert.assertEquals(testData.avtale.getKundeData1().getKontoData().getGodkjenttype().intValue() == 1, accountVo.isApproval());
- }
- public class TestData {
- final Long noOfSubsidiaryAgreements = 4L;
- final Long noOfAgreementUsers = 5L;
- final AvtaleData avtale = new AvtaleData(new AvtaleData());
- final RolesData role = TestDataMama.newRolesData();
- final TestDataMama.AvtaleGruppeData bankProduktAvtaleGruppe = new TestDataMama.AvtaleGruppeData();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement