package eu.dnetlib.enabling.aas;

import java.util.Iterator;
import java.util.Set;

/**
 * AAS Test Utilities.
 * @author mhorst
 *
 */
public class AASTestUtils {
	
	public static String generateUserProf(String email) {
		return "<RESOURCE_PROFILE>" +
					"<HEADER>" +
						"<RESOURCE_IDENTIFIER value=\"\"/>" +
						"<RESOURCE_TYPE value=\"UserDSResourceType\"/>" +
						"<RESOURCE_KIND value=\"UserDSResources\"/>" +
						"<RESOURCE_URI value=\"\"/>" +
						"<DATE_OF_CREATION value=\"\"/>" +
					"</HEADER>" +
					"<BODY>" +
						"<CONFIGURATION>" +
						"<PERSONAL_INFO>" +
							"<FIRST_NAME/>" +
							"<LAST_NAME/>" +
							"<INSTITUTION/>" +
							"<EMAIL value=\"" + email + "\"/>" +
							"<PASSWORD value=\"driver\"/>" +
							"<ACTIVATION_ID value=\"" + System.currentTimeMillis() + "\"/>" +
							"<ACTIVE value=\"true\"/>" +
						"</PERSONAL_INFO>" +
						"<ROLES/>" +
						"<COMMUNITIES>" +
							"<INCLUDE_IN_SEARCH/>" +
						"</COMMUNITIES>" +
						"<LAYOUT>BRIEF</LAYOUT>" +
						"<RECOMMENDATION SEND_EMAIL=\"false\">" +
							"<RECOMMENDATIONS/>" +
							"</RECOMMENDATION>" +
						"</CONFIGURATION>" +
						"<STATUS/>" +
						"<SECURITY_PARAMETERS>" +
							"<SECURITY_PARAMETER>value</SECURITY_PARAMETER>" +
						"</SECURITY_PARAMETERS>" +
					"</BODY>" +
				"</RESOURCE_PROFILE>";
	}
	
	public static String generateSecProf(String resourceId, Set<String> secProfRoles) {
		StringBuffer secProfBuff = new StringBuffer(); 
		secProfBuff.append("<RESOURCE_PROFILE>" +
					"<HEADER>" +
					  "<RESOURCE_IDENTIFIER value=\"\"/>" +
					  "<RESOURCE_KIND value=\"SecurityProfileDSResources\"/>" +
					  "<RESOURCE_TYPE value=\"SecurityProfileDSResourceType\"/>" +
					  "<RESOURCE_URI value=\"\"/>" +
					  "<DATE_OF_CREATION value=\"\"/>" +
					"</HEADER>" +
					"<BODY>" +
					"<CONFIGURATION>" +
					  "<resourceId>" + resourceId + "</resourceId>" +
					  "<identities>" +
					  "  <text>driver</text>" +
					  "  <type>password</type>" +
					  "</identities>");
		if (secProfRoles!=null && secProfRoles.size()>0) {
			Iterator<String> it = secProfRoles.iterator();
			while(it.hasNext()) {
				secProfBuff.append("<identities>");
				secProfBuff.append("<text>"+it.next()+"</text>");
				secProfBuff.append("<type>driver.security.identity.role</type>");
				secProfBuff.append("</identities>");
			}
			
		}
		secProfBuff.append("</CONFIGURATION>" +
					"</BODY>" +
				"</RESOURCE_PROFILE>");
		return secProfBuff.toString();
	}
}
