package eu.dnetlib.data.proto.wds;

import eu.dnetlib.data.proto.DatasetProtos.Dataset;
import eu.dnetlib.data.proto.FieldTypeProtos.Qualifier;
import eu.dnetlib.data.proto.FieldTypeProtos.StringField;
import eu.dnetlib.data.proto.PersonProtos.Person;
import eu.dnetlib.data.proto.WdsDatasetProtos.WdsDataset;
import eu.dnetlib.data.proto.WdsDatasetProtos.WdsDataset.GeoLocation;
import org.junit.Test;

/**
 * Created by claudio on 30/08/16.
 */
public class WdsDatasetTest {

	@Test
	public void testProtoExtensions() {

		GeoLocation g1 = GeoLocation.newBuilder()
				.setPoint("1 1")
				.addBox("2 2 3 3")
				.addBox("4 4 5 5")
				.setPlace("disko boy")
				.build();

		GeoLocation g2 = GeoLocation.newBuilder()
				.setPoint("1 1")
				.addBox("2 2 3 3")
				.addBox("4 4 5 5")
				.setPlace("disko boy 2")
				.build();

		Dataset.Metadata m = Dataset.Metadata.newBuilder()
				.addExtension(WdsDataset.geolocation, g1)
				.addExtension(WdsDataset.geolocation, g2)
				.addCountry(q("IT", "countries"))
				.build();

		Dataset d = Dataset.newBuilder()
				.setMetadata(m)
				.addAuthor(p("Michele Artini"))
				.build();

		//System.out.println(JsonFormat.printToString(d));
		System.out.println(d.toString());
	}

	private Person p(final String s) {
		return Person.newBuilder().setMetadata(Person.Metadata.newBuilder().setFullname(StringField.newBuilder().setValue(s))).build();
	}

	private Qualifier q(String c, String s) {
		return Qualifier.newBuilder().setClassid(c).setClassname(c).setSchemeid(s).setSchemename(s).build();
	}

}
