blob: af7b81a9267497ed2cfbcbec07d33b66f06cf868 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2013 David Green and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* David Green - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.wikitext.parser.markup;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.Set;
import org.eclipse.mylyn.internal.wikitext.MockMarkupLanguage;
import org.eclipse.mylyn.wikitext.parser.markup.MarkupLanguage;
import org.eclipse.mylyn.wikitext.parser.markup.MarkupLanguageProvider;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import com.google.common.collect.ImmutableSet;
public class MarkupLanguageProviderTest {
static class TestLanguageProvider extends MarkupLanguageProvider {
@Override
protected Set<MarkupLanguage> loadMarkupLanguages() {
return ImmutableSet.<MarkupLanguage> of(new MockMarkupLanguage("Test"));
}
}
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void getMarkupLanguages() {
MarkupLanguageProvider provider = new TestLanguageProvider();
assertNotNull(provider.getMarkupLanguages());
assertEquals(1, provider.getMarkupLanguages().size());
assertEquals("Test", provider.getMarkupLanguages().iterator().next().getName());
}
@Test
public void getMarkupLanguagesNull() {
MarkupLanguageProvider provider = new MarkupLanguageProvider() {
@Override
protected Set<MarkupLanguage> loadMarkupLanguages() {
return null;
}
};
thrown.expect(NullPointerException.class);
thrown.expectMessage("loadMarkupLanguages() must not return null");
provider.getMarkupLanguages();
}
@Test
public void getMarkupLanguagesDuplicatedNames() {
MarkupLanguageProvider provider = new MarkupLanguageProvider() {
@Override
protected Set<MarkupLanguage> loadMarkupLanguages() {
return ImmutableSet.<MarkupLanguage> of(new MockMarkupLanguage("Test"), new MockMarkupLanguage("Test"));
}
};
thrown.expect(IllegalStateException.class);
thrown.expectMessage("Language name 'Test' must not be provided more than once");
provider.getMarkupLanguages();
}
@Test
public void getMarkupLanguagesNullName() {
MarkupLanguageProvider provider = new MarkupLanguageProvider() {
@Override
protected Set<MarkupLanguage> loadMarkupLanguages() {
MockMarkupLanguage language = new MockMarkupLanguage();
language.setName(null);
return ImmutableSet.<MarkupLanguage> of(language);
}
};
thrown.expect(NullPointerException.class);
thrown.expectMessage("Provided languages must have a name");
provider.getMarkupLanguages();
}
}