Skip to content

Commit

Permalink
test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
nocs00 committed Jul 26, 2016
1 parent 9e35847 commit cae304f
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 68 deletions.
Expand Up @@ -66,7 +66,7 @@ public abstract class BaseSchema<T extends BaseSchemaDto> extends GenericModel<T
protected long createdTime;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = BASE_SCHEMA_APPLICATION_ID, nullable=false, foreignKey = @ForeignKey(name = BASE_SCHEMA_FK_APP_ID))
@JoinColumn(name = BASE_SCHEMA_APPLICATION_ID, foreignKey = @ForeignKey(name = BASE_SCHEMA_FK_APP_ID))
@OnDelete(action = OnDeleteAction.CASCADE)
private Application application;

Expand Down
Expand Up @@ -36,8 +36,10 @@
import org.kaaproject.kaa.common.dto.event.EventClassType;
import org.kaaproject.kaa.server.common.dao.EventClassService;
import org.kaaproject.kaa.server.common.dao.exception.IncorrectParameterException;
import org.kaaproject.kaa.server.common.dao.impl.CTLSchemaDao;
import org.kaaproject.kaa.server.common.dao.impl.EventClassDao;
import org.kaaproject.kaa.server.common.dao.impl.EventClassFamilyDao;
import org.kaaproject.kaa.server.common.dao.model.sql.CTLSchema;
import org.kaaproject.kaa.server.common.dao.model.sql.EventClass;
import org.kaaproject.kaa.server.common.dao.model.sql.EventClassFamily;
import org.kaaproject.kaa.server.common.dao.model.sql.EventClassFamilyVersion;
Expand All @@ -63,6 +65,9 @@ public class EventClassServiceImpl implements EventClassService {
@Autowired
private EventSchemaProcessor eventSchemaProcessor;

@Autowired
private CTLSchemaDao<CTLSchema> ctlSchemaDao;

@Override
public List<EventClassFamilyDto> findEventClassFamiliesByTenantId(
String tenantId) {
Expand Down Expand Up @@ -164,10 +169,10 @@ public int compare(EventClassFamilyVersionDto o1,
EventClassFamily ecf = new EventClassFamily(eventClassFamily);
List<EventClassFamilyVersion> schemas = new ArrayList<>();
for (EventClassDto eventClass : records) {
setEventClassProperties(eventClassFamily, eventClass, version);
setEventClassProperties(eventClassFamily, eventClass);
}
schemasDto.forEach(s -> schemas.add(new EventClassFamilyVersion(s)));
setEventClassECF(schemas);
setBackreference(schemas);
ecf.setSchemas(schemas);
eventClassFamilyDao.save(ecf);
} else {
Expand All @@ -180,13 +185,12 @@ public int compare(EventClassFamilyVersionDto o1,
}
}

private void setEventClassProperties(EventClassFamilyDto eventClassFamilyDto, EventClassDto eventClass, int version) {
private void setEventClassProperties(EventClassFamilyDto eventClassFamilyDto, EventClassDto eventClass) {
eventClass.setTenantId(eventClassFamilyDto.getTenantId());
eventClass.setEcfId(eventClassFamilyDto.getId());
eventClass.setVersion(version);
eventClass.setVersion(ctlSchemaDao.findById(eventClass.getCtlSchemaId()).getVersion());
}

private void setEventClassECF(List<EventClassFamilyVersion> ecfvList) {
private void setBackreference(List<EventClassFamilyVersion> ecfvList) {
ecfvList.forEach(ecfv -> ecfv.getRecords().forEach(ec -> ec.setEcf(ecfv)));
}

Expand Down
Expand Up @@ -381,7 +381,6 @@ protected LogAppender generateLogAppender(Application app) {
}

protected List<EventClassFamily> generateEventClassFamily(Tenant tenant, int count) {
int eventSchemaVersionsCount = 2;
if (tenant == null) {
tenant = generateTenant();
}
Expand All @@ -396,22 +395,40 @@ protected List<EventClassFamily> generateEventClassFamily(Tenant tenant, int cou
eventClassFamily.setDescription("Test Description");
eventClassFamily.setName("Test Name" + RANDOM.nextInt());
eventClassFamily.setNamespace("Test Namespace");
List<EventClassFamilyVersion> eventSchemaVersions = new ArrayList<>(eventSchemaVersionsCount);
for (int j = 0; j < eventSchemaVersionsCount; j++) {
EventClassFamilyVersion eventSchemaVersion = new EventClassFamilyVersion();
eventSchemaVersion.setCreatedTime(new Date().getTime());
eventSchemaVersion.setCreatedUsername("Test Username");
eventSchemaVersion.setVersion(1);
eventSchemaVersions.add(eventSchemaVersion);
}
eventClassFamily.setSchemas(eventSchemaVersions);
eventClassFamily = eventClassFamilyDao.save(eventClassFamily);
Assert.assertNotNull(eventClassFamily);
eventClassFamilies.add(eventClassFamily);
}
return eventClassFamilies;
}

protected List<EventClassFamilyVersion> generateEventClassFamilyVersion(EventClassFamily eventClassFamily, int ecfvCount, int ecCount) {
List<EventClassFamilyVersion> ecfvList = new ArrayList<>(ecfvCount);
for (int i = 0; i < ecfvCount; i++) {
EventClassFamilyVersion ecfv = new EventClassFamilyVersion();
List<EventClass> ecList = new ArrayList<>();
for (int j = 0; j < ecCount; j++) {
EventClass ec = new EventClass();
ec.setTenant(eventClassFamily.getTenant());
Integer version;
try {
version = ctlSchemaDao.find().stream().max((ctl1, ctl2) -> Integer.compare(ctl1.getVersion(), ctl2.getVersion())).get().getVersion()+1;
} catch (NoSuchElementException e) {
version = 1;
}

ec.setCtlSchema(generateCTLSchema(DEFAULT_FQN, version, eventClassFamily.getTenant(), CTLSchemaScopeDto.TENANT));
ec.setEcf(ecfv);
ec.setFqn("Test FQN" + RANDOM.nextInt());
ec.setType(EventClassType.EVENT);
ecList.add(ec);
}
ecfv.setRecords(ecList);
ecfvList.add(ecfv);
}
return ecfvList;
}

protected List<EventClass> generateEventClass(Tenant tenant, EventClassFamily eventClassFamily, int count) {
if (tenant == null) {
tenant = generateTenant();
Expand All @@ -420,40 +437,11 @@ protected List<EventClass> generateEventClass(Tenant tenant, EventClassFamily ev
eventClassFamily = generateEventClassFamily(tenant, 1).get(0);
}

EventClass eventClass;
EventClassFamilyVersion eventClassFamilyVersion = eventClassFamily.getSchemas().get(0);
List<EventClass> records = eventClassFamilyVersion.getRecords();
if (records == null) {
records = new ArrayList<>();
}
for (int i = 0; i < count; i++) {
eventClass = new EventClass();
eventClass.setTenant(tenant);
Integer version = 1;
try {
version = ctlSchemaDao.find().stream().max((ctl1, ctl2) -> Integer.compare(ctl1.getVersion(), ctl2.getVersion())).get().getVersion()+1;
} catch (NoSuchElementException e) {}

eventClass.setCtlSchema(generateCTLSchema(DEFAULT_FQN, version, tenant, CTLSchemaScopeDto.TENANT));
eventClass.setEcf(eventClassFamilyVersion);
eventClass.setFqn("Test FQN" + RANDOM.nextInt());
eventClass.setType(EventClassType.EVENT);
eventClass.setVersion(1);
eventClass.setName("test schema name" + RANDOM.nextInt());
eventClass.setDescription("test schema description" + RANDOM.nextInt());
eventClass.setCreatedUsername("test createdUsername" + RANDOM.nextInt());
eventClass.setCreatedTime(new Date().getTime());
eventClass.setApplication(generateApplication(tenant));
records.add(eventClass);
}
eventClassFamilyVersion.setRecords(records);
eventClassFamilyDao.save(eventClassFamily);
eventClassFamily = eventClassFamilyDao.findById(eventClassFamily.getStringId());
Long ecfvId = eventClassFamilyVersion.getId();
eventClassFamilyVersion = eventClassFamily.getSchemas().stream().filter(ecfv -> ecfv.getId().equals(ecfvId)).collect(Collectors.toList()).get(0);
List<EventClass> eventClasses = new ArrayList<>(count);
eventClasses.addAll(eventClassFamilyVersion.getRecords());
return eventClasses;
List<EventClassFamilyVersion> ecfvList = generateEventClassFamilyVersion(eventClassFamily, 1, count);
eventClassFamily.setSchemas(ecfvList);
eventClassFamily = eventClassFamilyDao.save(eventClassFamily);
List<EventClass> storedECs = eventClassFamily.getSchemas().get(0).getRecords();
return storedECs;
}

protected List<ApplicationEventFamilyMap> generateApplicationEventFamilyMap(Tenant tenant, Application application,
Expand Down
Expand Up @@ -1191,15 +1191,13 @@ protected EventClassFamilyDto createEventClassFamily(String tenantId, String cla
return savedEventClassFamily;
}

protected EventClassFamilyVersionDto createEventClassFamilyVersion(String ecfId) throws Exception {
protected EventClassFamilyVersionDto createEventClassFamilyVersion(String tenantId) throws Exception {
EventClassFamilyVersionDto eventClassFamilyVersion = new EventClassFamilyVersionDto();
List<EventClassDto> records = new ArrayList<>();

String className = "Test" + random.nextInt(1000);
CTLSchemaDto ctlSchema = this.createCTLSchema(className, EVENT_CLASS_FAMILY_NAMESPACE, 1, tenantAdminDto.getTenantId(), null, null, null);
CTLSchemaDto ctlSchema = this.createCTLSchema(className, EVENT_CLASS_FAMILY_NAMESPACE, 1, tenantId, null, null, null);
EventClassDto ec = new EventClassDto();
ApplicationDto application = createApplication(tenantAdminDto);
ec.setApplicationId(application.getId());
ec.setFqn(EVENT_CLASS_FAMILY_NAMESPACE + "." + className);
ec.setType(EventClassType.EVENT);
ec.setCtlSchemaId(ctlSchema.getId());
Expand Down Expand Up @@ -1256,7 +1254,7 @@ protected ApplicationEventFamilyMapDto createApplicationEventFamilyMap(String ap
List<EventClassFamilyVersionDto> storedECFVersions = client.getEventClassFamilyVersionsById(ecfId);

loginTenantAdmin(tenantAdminUser);
EventClassFamilyVersionDto testECFVersion = createEventClassFamilyVersion(ecfId);
EventClassFamilyVersionDto testECFVersion = createEventClassFamilyVersion(tenantAdminDto.getTenantId());
if (storedECFVersions == null || storedECFVersions.size()<version) {
client.addEventClassFamilyVersion(eventClassFamily.getId(), testECFVersion);
}
Expand Down
Expand Up @@ -120,7 +120,7 @@ public void testGetVacantEventClassFamiliesByApplicationToken() throws Exception
Assert.assertEquals(0, vacantEcfs.size());

loginTenantAdmin(tenantAdminUser);
EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(eventClassFamily.getId());
EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(tenantAdminDto.getTenantId());
client.addEventClassFamilyVersion(eventClassFamily.getId(), eventClassFamilyVersion);

loginTenantDeveloper(tenantDeveloperUser);
Expand Down
Expand Up @@ -126,10 +126,10 @@ public void testUpdateEventClassFamily() throws Exception {
*/
@Test
public void testGetEventClassesByFamilyIdVersionAndType() throws Exception {
tenantAdminDto = createTenant(tenantAdminUser);
TenantUserDto tenant = createTenant(tenantAdminUser);
loginTenantAdmin(tenantAdminUser);
EventClassFamilyDto eventClassFamily = createEventClassFamily(tenantAdminDto.getId());
EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(eventClassFamily.getId());
EventClassFamilyDto eventClassFamily = createEventClassFamily(tenant.getTenantId());
EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(tenant.getTenantId());
client.addEventClassFamilyVersion(eventClassFamily.getId(), eventClassFamilyVersion);
List<EventClassDto> eventClasses = client.getEventClassesByFamilyIdVersionAndType(eventClassFamily.getId(), 1, EventClassType.EVENT);
Assert.assertNotNull(eventClasses);
Expand Down Expand Up @@ -169,10 +169,10 @@ public void executeRestCall() throws Exception {
*/
@Test
public void testAddEventClassFamilyVersion() throws Exception {
tenantAdminDto = createTenant(tenantAdminUser);
TenantUserDto tenant = createTenant(tenantAdminUser);
loginTenantAdmin(tenantAdminUser);
EventClassFamilyDto eventClassFamily = createEventClassFamily(tenantAdminDto.getId());
EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(eventClassFamily.getId());
EventClassFamilyDto eventClassFamily = createEventClassFamily(tenant.getTenantId());
EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(tenant.getTenantId());
client.addEventClassFamilyVersion(eventClassFamily.getId(), eventClassFamilyVersion);
List<EventClassFamilyVersionDto> schemas = eventClassService.findEventClassFamilyVersionsById(eventClassFamily.getId());
Assert.assertNotNull(schemas);
Expand All @@ -197,17 +197,16 @@ public void testAddEventClassFamilyVersion() throws Exception {
*/
@Test
public void testDuplicateEventClassFamilyFqns() throws Exception {
tenantAdminDto = createTenant(tenantAdminUser);
TenantUserDto tenant = createTenant(tenantAdminUser);
loginTenantAdmin(tenantAdminUser);
EventClassFamilyDto eventClassFamily = createEventClassFamily(tenantAdminDto.getId());
final EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(eventClassFamily.getId());
EventClassFamilyDto eventClassFamily = createEventClassFamily(tenant.getTenantId());
final EventClassFamilyVersionDto eventClassFamilyVersion = createEventClassFamilyVersion(tenant.getTenantId());
loginTenantAdmin(tenantAdminUser);
client.addEventClassFamilyVersion(eventClassFamily.getId(), eventClassFamilyVersion);
final EventClassFamilyDto secondEventClassFamily = createEventClassFamily(tenantAdminDto.getId(), "test");
checkBadRequest(new TestRestCall() {
@Override
public void executeRestCall() throws Exception {
client.addEventClassFamilyVersion(secondEventClassFamily.getId(), eventClassFamilyVersion);
createEventClassFamily(tenant.getTenantId());
}
});
}
Expand Down

0 comments on commit cae304f

Please sign in to comment.