blob: 2cdf37a7607184d7f539c9777df4d9e7c2e97a34 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2015 Xored Software Inc and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Xored Software Inc - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.rcptt.core.search.test;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import org.eclipse.rcptt.core.search.tags.TagsContentAssist;
import org.eclipse.rcptt.core.tags.Tag;
import org.eclipse.rcptt.core.tags.TagsFactory;
import org.junit.Test;
public class TagsContentAssistTest {
@Test
public void testEmpty() {
ArrayList<String> offers = TagsContentAssist.getOffers("", getTags());
assertEquals(4, offers.size());
assertEquals("tag1", offers.get(0));
assertEquals("\"tag with spaces\"", offers.get(1));
assertEquals("\"!tag\"", offers.get(2));
assertEquals("Tag&Tag", offers.get(3));
}
@Test
public void testTag() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag", getTags());
assertEquals(4, offers.size());
assertEquals("tag1", offers.get(0));
assertEquals("tag1/tag2", offers.get(1));
assertEquals("\"tag with spaces\"", offers.get(2));
assertEquals("Tag&Tag", offers.get(3));
}
@Test
public void testTagWithOpenParenthesis() {
ArrayList<String> offers = TagsContentAssist.getOffers("(tag", getTags());
assertEquals(4, offers.size());
assertEquals("(tag1", offers.get(0));
assertEquals("(tag1/tag2", offers.get(1));
assertEquals("(\"tag with spaces\"", offers.get(2));
assertEquals("(Tag&Tag", offers.get(3));
}
@Test
public void testTagWithCloseParenthesis() {
ArrayList<String> offers = TagsContentAssist.getOffers("(tag) ", getTags());
assertEquals(2, offers.size());
assertEquals("(tag) OR", offers.get(0));
assertEquals("(tag) AND", offers.get(1));
}
@Test
public void testTag1() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag1", getTags());
assertEquals(2, offers.size());
assertEquals("tag1", offers.get(0));
assertEquals("tag1/tag2", offers.get(1));
}
@Test
public void testTag1Space() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag1 ", getTags());
assertEquals(2, offers.size());
assertEquals("tag1 OR", offers.get(0));
assertEquals("tag1 AND", offers.get(1));
}
@Test
public void testTag2() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag1/", getTags());
assertEquals(1, offers.size());
assertEquals("tag1/tag2", offers.get(0));
}
@Test
public void testTagSpace() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag ", getTags());
assertEquals(3, offers.size());
assertEquals("\"tag with spaces\"", offers.get(0));
assertEquals("tag OR", offers.get(1));
assertEquals("tag AND", offers.get(2));
}
@Test
public void testTag1And() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag1 AND ", getTags());
assertEquals(4, offers.size());
assertEquals("tag1 AND tag1", offers.get(0));
assertEquals("tag1 AND \"tag with spaces\"", offers.get(1));
assertEquals("tag1 AND \"!tag\"", offers.get(2));
assertEquals("tag1 AND Tag&Tag", offers.get(3));
}
@Test
public void testTag1AndNot() {
ArrayList<String> offers = TagsContentAssist.getOffers("tag1 AND !", getTags());
assertEquals(4, offers.size());
assertEquals("tag1 AND !tag1", offers.get(0));
assertEquals("tag1 AND !\"tag with spaces\"", offers.get(1));
assertEquals("tag1 AND !\"!tag\"", offers.get(2));
assertEquals("tag1 AND !Tag&Tag", offers.get(3));
}
/**
* Fills tags.
*
* tag1
* tag1/tag2
* tag with spaces
* !tag
* Tag&Tag
*
* @return ArrayList<Tag>
*/
private ArrayList<Tag> getTags() {
ArrayList<Tag> tags = new ArrayList<Tag>();
Tag tag1 = TagsFactory.eINSTANCE.createTag();
Tag tag2 = TagsFactory.eINSTANCE.createTag();
Tag tagWs = TagsFactory.eINSTANCE.createTag();
Tag tagNot = TagsFactory.eINSTANCE.createTag();
Tag tagAnd = TagsFactory.eINSTANCE.createTag();
tag1.setValue("tag1");
tag2.setValue("tag2");
tagWs.setValue("tag with spaces");
tagNot.setValue("!tag");
tagAnd.setValue("Tag&Tag");
tag1.getTags().add(tag2);
tags.add(tag1);
tags.add(tagWs);
tags.add(tagNot);
tags.add(tagAnd);
return tags;
}
}