package com.constellio.app.ui.pages.management.schemaRecords;
import java.util.ArrayList;
import java.util.List;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.Transaction;
import com.constellio.model.entities.schemas.Metadata;
import com.constellio.model.entities.schemas.MetadataSchema;
import com.constellio.model.entities.schemas.MetadataSchemaType;
import com.constellio.model.services.records.RecordServices;
import com.constellio.model.services.records.RecordServicesException;
import com.constellio.model.services.schemas.builders.MetadataSchemaTypeBuilder;
import com.constellio.sdk.tests.TestRecord;
import com.constellio.sdk.tests.schemas.SchemasSetup;
import com.constellio.sdk.tests.setups.SchemaShortcuts;
public class SchemaRecordsViewAcceptTestSetup extends SchemasSetup {
public static final String ZE_SCHEMA = "zeSchema";
ZeSchema zeSchema = new ZeSchema();
public SchemaRecordsViewAcceptTestSetup(String collection) {
super(collection);
}
@Override
public void setUp() {
MetadataSchemaTypeBuilder zeSchemaType = typesBuilder.createNewSchemaType(ZE_SCHEMA);
}
public class ZeSchema implements SchemaShortcuts {
public MetadataSchemaType type() {
return get(ZE_SCHEMA);
}
@Override
public String code() {
return ZE_SCHEMA + "_default";
}
@Override
public String collection() {
return collection;
}
@Override
public MetadataSchema instance() {
return getSchema(code());
}
public Metadata title() {
return getMetadata(code() + "_title");
}
}
public RecordsOfZeSchema givenSomeRecordsOfZeSchema(RecordServices recordServices) {
try {
return new RecordsOfZeSchema(recordServices);
} catch (RecordServicesException e) {
throw new RuntimeException(e);
}
}
public class RecordsOfZeSchema {
public final Record record1;
public final Record record2;
public final Record record3;
public final Record record4;
List<Record> records = new ArrayList<>();
private RecordServices recordServices;
private RecordsOfZeSchema(RecordServices recordServices)
throws RecordServicesException {
this.recordServices = recordServices;
Transaction transaction = new Transaction();
records.add(record1 = createRecord(transaction, "record1"));
records.add(record2 = createRecord(transaction, "record2"));
records.add(record3 = createRecord(transaction, "record3"));
records.add(record4 = createRecord(transaction, "record4"));
recordServices.execute(transaction);
}
private Record createRecord(Transaction transaction, String id) {
Record record = new TestRecord(zeSchema, id);
record.set(zeSchema.title(), id);
transaction.addUpdate(record);
return record;
}
}
}