package tests;
import static org.junit.Assert.*;
import org.junit.Test;
import models.dataConstraintModel.*;
public class DataConstraintModelTest {
@Test
public void test() {
// Construct a data constraint architecture model.
DataConstraintModel model = new DataConstraintModel();
ResourcePath customers = model.createResourcePath(null, "customers"); // "customers"
ResourcePath customer = model.createResourcePath(customers, "{customer_id}"); // "customers.{customer_id}"
ResourcePath customer_off = model.createResourcePath(customer, "off"); // "customers.{customer_id}.off"
ResourcePath customer_add = model.createResourcePath(customer, "add"); // "customers.{customer_id}.add"
ResourcePath companies = model.createResourcePath(null, "companies"); // "companies"
ResourcePath company = model.createResourcePath(companies, "{company_id}"); // "companies.{company_id}"
ResourcePath company_add = model.createResourcePath(companies, "add"); // "companies.{company_id}.add"
Channel gin_1 = new Channel("gin_1"); // set customer's office
GroupSelector x1 = new GroupSelector();
ChannelMember customer_off_1 = new ChannelMember(customer_off);
customer_off_1.addPathParam(x1);
gin_1.addChannelMember(customer_off_1);
assertEquals(customer_off.getNumberOfParameters(), customer_off_1.getPathParams().size());
Channel gin_2 = new Channel("gin_2"); // set companie's address
GroupSelector x2 = new GroupSelector();
ChannelMember company_add_1 = new ChannelMember(company_add);
company_add_1.addPathParam(x2);
gin_2.addChannelMember(company_add_1);
assertEquals(company_add.getNumberOfParameters(), company_add_1.getPathParams().size());
Channel g = new Channel("g"); // update customer's address
GroupSelector x3 = new GroupSelector();
ChannelSelector y = new ChannelSelector();
ChannelMember customer_off_2 = new ChannelMember(customer_off);
ChannelMember company_add_2 = new ChannelMember(company_add);
ChannelMember customer_add_2 = new ChannelMember(customer_add);
customer_off_2.addPathParam(x3);
company_add_2.addPathParam(y);
customer_add_2.addPathParam(x3);
g.addChannelMember(customer_off_2);
g.addChannelMember(customer_add_2);
g.addChannelMember(company_add_2);
assertEquals(customer_off.getNumberOfParameters(), customer_off_2.getPathParams().size());
assertEquals(customer_add.getNumberOfParameters(), customer_add_2.getPathParams().size());
assertEquals(company_add.getNumberOfParameters(), company_add_2.getPathParams().size());
model.addIOChannel(gin_1);
model.addIOChannel(gin_2);
model.addChannel(g);
// Check the model.
assertEquals(3, model.getResourcePaths().size());
assertEquals(2, model.getIOChannels().size());
assertEquals(1, model.getChannels().size());
}
}