package eu.dnetlib.domain.functionality;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

import org.junit.Before;

import eu.dnetlib.domain.data.Document;

public class TestDocumetField {

	private Document document = null;
	private DocumentField field = null;
	private List<DisplayType> displays = null;
	StringBuilder builder = new StringBuilder();
	private Map<Locale, String> descriprionMap = new HashMap<Locale, String>();
	
	@Before
	public void setUp() {
		document = new Document();

		document.setMap(new HashMap<String, List<String>>());
		document.getMap().put("id", Arrays.asList(new String[] { "id1" }));
		document.getMap().put("repName",
				Arrays.asList(new String[] { "ACM Repository" }));
		document.getMap().put("identifier",
				Arrays.asList(new String[] { "http://go.to.link" }));
		document.getMap().put("title",
				Arrays.asList(new String[] { "title A", "title B" }));
		document.getMap().put("descr",
				Arrays.asList(new String[] { "descriptionA", "descriptionB",
								"descriptionC"}));
		document.getMap().put("creator",
				Arrays.asList(new String[] { "creator A", "author B", "crtor C" }));
	
		displays = new ArrayList<DisplayType>();
	}
	
	@org.junit.Test
	public void DocumentFieldPlainTest(){
	
		descriprionMap.put(new Locale("en", "GB"), "${title}");
		descriprionMap.put(new Locale("es", "ES"), "${title}");
		
		DisplayType dType = new DocumentExternalUrlDisplayType("title", descriprionMap);
		displays.add(dType);
		dType.getDisplayMessage(builder, document, "dfdsfsdfsdf");
		System.out.println(builder);
		
/*		field = new DocumentField("descr", "Description", null, displays, "noClass");
		field = new DocumentField("descr", "${title}", null, displays, "noClass");
		field.setForceDescription(true);
		field.setSecondaryLink("link");	
		System.out.println(field.getMessage(document));
	/*	
		dType = new PlainTextDisplayType("descr", "Desc is: ${descr}");
		displays.add(dType);
		
		field = new DocumentField("descr", "Descr:", null, displays, "noClass");
		System.out.println(field.getMessage(document));
		
		displays = new ArrayList<DisplayType>();
		dType = new PlainTextDisplayType("descr", "Desc is: ${descr}");
		displays.add(dType);
		
		field = new DocumentField("descr", "Descr:", null, displays, "noClass");
		System.out.println(field.getMessage(document));
		*/
	}
}
