package net.techreadiness.service;
import static org.mockito.Mockito.verify;
import java.util.List;
import java.util.Map;
import net.techreadiness.persistence.dao.EntityDAO;
import net.techreadiness.persistence.dao.EntityFieldDAO;
import net.techreadiness.persistence.dao.ExtDAO;
import net.techreadiness.persistence.domain.EntityFieldDO;
import net.techreadiness.persistence.domain.OrgDO;
import net.techreadiness.persistence.domain.OrgExtDO;
import net.techreadiness.persistence.domain.OrgPartDO;
import net.techreadiness.persistence.domain.OrgPartExtDO;
import net.techreadiness.persistence.domain.ScopeDO;
import net.techreadiness.persistence.domain.ScopeExtDO;
import net.techreadiness.persistence.domain.UserDO;
import net.techreadiness.persistence.domain.UserExtDO;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
public class BaseServiceWithValidationAndExtTest {
@Mock
private ExtDAO<ScopeDO, ScopeExtDO> scopeExtDAO;
@Mock
private ExtDAO<OrgDO, OrgExtDO> orgExtDAO;
@Mock
private ExtDAO<OrgPartDO, OrgPartExtDO> orgPartExtDAO;
@Mock
private ExtDAO<UserDO, UserExtDO> userExtDAO;
@Mock
private EntityFieldDAO entityFieldDAO;
private BaseServiceWithValidationAndExt<ScopeDO, ScopeExtDO> baseServiceWithValidationAndExtScopes;
private BaseServiceWithValidationAndExt<OrgDO, OrgExtDO> baseServiceWithValidationAndExtOrgs;
private BaseServiceWithValidationAndExt<OrgPartDO, OrgPartExtDO> baseServiceWithValidationAndExtOrgParts;
private BaseServiceWithValidationAndExt<UserDO, UserExtDO> baseServiceWithValidationAndExtUsers;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
baseServiceWithValidationAndExtScopes = new BaseServiceWithValidationAndExt<>();
baseServiceWithValidationAndExtOrgs = new BaseServiceWithValidationAndExt<>();
baseServiceWithValidationAndExtOrgParts = new BaseServiceWithValidationAndExt<>();
baseServiceWithValidationAndExtUsers = new BaseServiceWithValidationAndExt<>();
}
@Test
public void testStoreExtAttributesForScopeDeletes() {
baseServiceWithValidationAndExtScopes.setEntityFieldDAO(entityFieldDAO);
ScopeDO scopeDO = new ScopeDO();
// 4 fields being passed in
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
scopeDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
ScopeExtDO superAdmin = new ScopeExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
ScopeExtDO specialCode = new ScopeExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
ScopeExtDO secret = new ScopeExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
ScopeExtDO magicKey = new ScopeExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<ScopeExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(scopeExtDAO.getExtDOs(Matchers.any(ScopeDO.class))).thenReturn(mockCurrentList);
Mockito.when(scopeExtDAO.getNew()).thenReturn(new ScopeExtDO());
try {
baseServiceWithValidationAndExtScopes.storeExtFields(context, scopeDO, scopeExtDAO,
EntityDAO.EntityTypeCode.SCOPE, 1L);
} finally {
verify(scopeExtDAO, Mockito.times(2)).delete((ScopeExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForScopeUpdates() {
baseServiceWithValidationAndExtScopes.setEntityFieldDAO(entityFieldDAO);
ScopeDO scopeDO = new ScopeDO();
// 4 fields being passed in
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
// exts.put("secret", "password");
// exts.put("magicKey", "false");
scopeDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
ScopeExtDO superAdmin = new ScopeExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
ScopeExtDO specialCode = new ScopeExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
ScopeExtDO secret = new ScopeExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
ScopeExtDO magicKey = new ScopeExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<ScopeExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(scopeExtDAO.getExtDOs(Matchers.any(ScopeDO.class))).thenReturn(mockCurrentList);
Mockito.when(scopeExtDAO.getNew()).thenReturn(new ScopeExtDO());
try {
baseServiceWithValidationAndExtScopes.storeExtFields(context, scopeDO, scopeExtDAO,
EntityDAO.EntityTypeCode.SCOPE, 1L);
} finally {
verify(scopeExtDAO, Mockito.times(2)).update((ScopeExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForScopeCreates() {
baseServiceWithValidationAndExtScopes.setEntityFieldDAO(entityFieldDAO);
ScopeDO scopeDO = new ScopeDO();
// 4 fields being passed in
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "password");
exts.put("magicKey", "false");
scopeDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
ScopeExtDO superAdmin = new ScopeExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
ScopeExtDO specialCode = new ScopeExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
ScopeExtDO secret = new ScopeExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
ScopeExtDO magicKey = new ScopeExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<ScopeExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
// mockCurrentList.add(secret);
// mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.SCOPE), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(scopeExtDAO.getExtDOs(Matchers.any(ScopeDO.class))).thenReturn(mockCurrentList);
Mockito.when(scopeExtDAO.getNew()).thenReturn(new ScopeExtDO());
try {
baseServiceWithValidationAndExtScopes.storeExtFields(context, scopeDO, scopeExtDAO,
EntityDAO.EntityTypeCode.SCOPE, 1L);
} finally {
verify(scopeExtDAO, Mockito.times(2)).create((ScopeExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForOrgDeletes() {
baseServiceWithValidationAndExtOrgs.setEntityFieldDAO(entityFieldDAO);
OrgDO orgDO = new OrgDO();
// 4 fields being passed in
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
orgDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
OrgExtDO superAdmin = new OrgExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
OrgExtDO specialCode = new OrgExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
OrgExtDO secret = new OrgExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
OrgExtDO magicKey = new OrgExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<OrgExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(orgExtDAO.getExtDOs(Matchers.any(OrgDO.class))).thenReturn(mockCurrentList);
Mockito.when(orgExtDAO.getNew()).thenReturn(new OrgExtDO());
try {
baseServiceWithValidationAndExtOrgs.storeExtFields(context, orgDO, orgExtDAO, EntityDAO.EntityTypeCode.ORG, 1L);
} finally {
verify(orgExtDAO, Mockito.times(2)).delete((OrgExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForOrgUpdates() {
baseServiceWithValidationAndExtOrgs.setEntityFieldDAO(entityFieldDAO);
OrgDO orgDO = new OrgDO();
// 4 fields being passed in
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
// exts.put("secret", "");
// exts.put("magicKey", "false");
orgDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
OrgExtDO superAdmin = new OrgExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
OrgExtDO specialCode = new OrgExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
OrgExtDO secret = new OrgExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
OrgExtDO magicKey = new OrgExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<OrgExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(orgExtDAO.getExtDOs(Matchers.any(OrgDO.class))).thenReturn(mockCurrentList);
Mockito.when(orgExtDAO.getNew()).thenReturn(new OrgExtDO());
try {
baseServiceWithValidationAndExtOrgs.storeExtFields(context, orgDO, orgExtDAO, EntityDAO.EntityTypeCode.ORG, 1L);
} finally {
verify(orgExtDAO, Mockito.times(2)).delete((OrgExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForOrgCreates() {
baseServiceWithValidationAndExtOrgs.setEntityFieldDAO(entityFieldDAO);
OrgDO orgDO = new OrgDO();
// 4 fields being passed in
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
// exts.put("secret", "");
// exts.put("magicKey", "false");
orgDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
OrgExtDO superAdmin = new OrgExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
OrgExtDO specialCode = new OrgExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
OrgExtDO secret = new OrgExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
OrgExtDO magicKey = new OrgExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<OrgExtDO> mockCurrentList = Lists.newArrayList();
// mockCurrentList.add(superAdmin);
// mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(orgExtDAO.getExtDOs(Matchers.any(OrgDO.class))).thenReturn(mockCurrentList);
Mockito.when(orgExtDAO.getNew()).thenReturn(new OrgExtDO());
try {
baseServiceWithValidationAndExtOrgs.storeExtFields(context, orgDO, orgExtDAO, EntityDAO.EntityTypeCode.ORG, 1L);
} finally {
verify(orgExtDAO, Mockito.times(2)).delete((OrgExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForOrgPartDeletes() {
baseServiceWithValidationAndExtOrgParts.setEntityFieldDAO(entityFieldDAO);
OrgPartDO orgPartDO = new OrgPartDO();
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
orgPartDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
OrgPartExtDO superAdmin = new OrgPartExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
OrgPartExtDO specialCode = new OrgPartExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
OrgPartExtDO secret = new OrgPartExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
OrgPartExtDO magicKey = new OrgPartExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<OrgPartExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("specialCode"))).thenReturn(
specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(orgPartExtDAO.getExtDOs(Matchers.any(OrgPartDO.class))).thenReturn(mockCurrentList);
Mockito.when(orgPartExtDAO.getNew()).thenReturn(new OrgPartExtDO());
try {
baseServiceWithValidationAndExtOrgParts.storeExtFields(context, orgPartDO, orgPartExtDAO,
EntityDAO.EntityTypeCode.ORG_PART, 1L);
} finally {
verify(orgPartExtDAO, Mockito.times(2)).delete((OrgPartExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForOrgPartUpdates() {
baseServiceWithValidationAndExtOrgParts.setEntityFieldDAO(entityFieldDAO);
OrgPartDO orgPartDO = new OrgPartDO();
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
orgPartDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
OrgPartExtDO superAdmin = new OrgPartExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
OrgPartExtDO specialCode = new OrgPartExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
OrgPartExtDO secret = new OrgPartExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
OrgPartExtDO magicKey = new OrgPartExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<OrgPartExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("specialCode"))).thenReturn(
specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(orgPartExtDAO.getExtDOs(Matchers.any(OrgPartDO.class))).thenReturn(mockCurrentList);
Mockito.when(orgPartExtDAO.getNew()).thenReturn(new OrgPartExtDO());
try {
baseServiceWithValidationAndExtOrgParts.storeExtFields(context, orgPartDO, orgPartExtDAO,
EntityDAO.EntityTypeCode.ORG_PART, 1L);
} finally {
verify(orgPartExtDAO, Mockito.times(2)).update((OrgPartExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForOrgPartCreates() {
baseServiceWithValidationAndExtOrgParts.setEntityFieldDAO(entityFieldDAO);
OrgPartDO orgPartDO = new OrgPartDO();
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
orgPartDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
OrgPartExtDO superAdmin = new OrgPartExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
OrgPartExtDO specialCode = new OrgPartExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
OrgPartExtDO secret = new OrgPartExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
OrgPartExtDO magicKey = new OrgPartExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<OrgPartExtDO> mockCurrentList = Lists.newArrayList();
// mockCurrentList.add(superAdmin);
// mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("specialCode"))).thenReturn(
specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.ORG_PART), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(orgPartExtDAO.getExtDOs(Matchers.any(OrgPartDO.class))).thenReturn(mockCurrentList);
Mockito.when(orgPartExtDAO.getNew()).thenReturn(new OrgPartExtDO());
try {
baseServiceWithValidationAndExtOrgParts.storeExtFields(context, orgPartDO, orgPartExtDAO,
EntityDAO.EntityTypeCode.ORG_PART, 1L);
} finally {
verify(orgPartExtDAO, Mockito.times(2)).create((OrgPartExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForUserDeletes() {
baseServiceWithValidationAndExtUsers.setEntityFieldDAO(entityFieldDAO);
UserDO userDO = new UserDO();
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
userDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
UserExtDO superAdmin = new UserExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
UserExtDO specialCode = new UserExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
UserExtDO secret = new UserExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
UserExtDO magicKey = new UserExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<UserExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(userExtDAO.getExtDOs(Matchers.any(UserDO.class))).thenReturn(mockCurrentList);
Mockito.when(userExtDAO.getNew()).thenReturn(new UserExtDO());
try {
baseServiceWithValidationAndExtUsers.storeExtFields(context, userDO, userExtDAO, EntityDAO.EntityTypeCode.USER,
1L);
} finally {
verify(userExtDAO, Mockito.times(2)).delete((UserExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForUserUpdates() {
baseServiceWithValidationAndExtUsers.setEntityFieldDAO(entityFieldDAO);
UserDO userDO = new UserDO();
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
userDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
UserExtDO superAdmin = new UserExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
UserExtDO specialCode = new UserExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
UserExtDO secret = new UserExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
UserExtDO magicKey = new UserExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<UserExtDO> mockCurrentList = Lists.newArrayList();
mockCurrentList.add(superAdmin);
mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(userExtDAO.getExtDOs(Matchers.any(UserDO.class))).thenReturn(mockCurrentList);
Mockito.when(userExtDAO.getNew()).thenReturn(new UserExtDO());
try {
baseServiceWithValidationAndExtUsers.storeExtFields(context, userDO, userExtDAO, EntityDAO.EntityTypeCode.USER,
1L);
} finally {
verify(userExtDAO, Mockito.times(2)).update((UserExtDO) Matchers.any());
}
}
@Test
public void testStoreExtAttributesForUserCreates() {
baseServiceWithValidationAndExtUsers.setEntityFieldDAO(entityFieldDAO);
UserDO userDO = new UserDO();
Map<String, String> exts = Maps.newHashMap();
exts.put("superAdmin", "true");
exts.put("specialCode", "8675309");
exts.put("secret", "");
// exts.put("magicKey", "false");
userDO.setExtAttributes(exts);
EntityFieldDO superAdminDO = new EntityFieldDO();
superAdminDO.setCode("superAdmin");
EntityFieldDO specialCodeDO = new EntityFieldDO();
specialCodeDO.setCode("specialCode");
EntityFieldDO secretDO = new EntityFieldDO();
secretDO.setCode("secret");
EntityFieldDO magicKeyDO = new EntityFieldDO();
magicKeyDO.setCode("false");
// create for 4ExtDO's
UserExtDO superAdmin = new UserExtDO();
superAdmin.setEntityField(superAdminDO);
superAdmin.setValue("false");
UserExtDO specialCode = new UserExtDO();
specialCode.setEntityField(specialCodeDO);
specialCode.setValue("9891212");
UserExtDO secret = new UserExtDO();
secret.setEntityField(secretDO);
secret.setValue("password");
UserExtDO magicKey = new UserExtDO();
magicKey.setEntityField(magicKeyDO);
magicKey.setValue("true");
List<UserExtDO> mockCurrentList = Lists.newArrayList();
// mockCurrentList.add(superAdmin);
// mockCurrentList.add(specialCode);
mockCurrentList.add(secret);
mockCurrentList.add(magicKey);
ServiceContext context = Mockito.mock(ServiceContext.class);
Mockito.when(context.getScopeId()).thenReturn(4L);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("superAdmin"))).thenReturn(superAdminDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("specialCode"))).thenReturn(specialCodeDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("secret"))).thenReturn(secretDO);
Mockito.when(
entityFieldDAO.findByScopeAndTypeAndCode(Matchers.any(Long.class),
Matchers.eq(EntityDAO.EntityTypeCode.USER), Matchers.eq("magicKey"))).thenReturn(magicKeyDO);
// set already existing ext fields
Mockito.when(userExtDAO.getExtDOs(Matchers.any(UserDO.class))).thenReturn(mockCurrentList);
Mockito.when(userExtDAO.getNew()).thenReturn(new UserExtDO());
try {
baseServiceWithValidationAndExtUsers.storeExtFields(context, userDO, userExtDAO, EntityDAO.EntityTypeCode.USER,
1L);
} finally {
verify(userExtDAO, Mockito.times(2)).create((UserExtDO) Matchers.any());
}
}
}