/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.ide.eclipse.main.plugin.tableeditor.assist;
import static org.assertj.core.api.Assertions.assertThat;
import org.eclipse.core.resources.IFile;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Text;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.robotframework.ide.eclipse.main.plugin.RedPlugin;
import org.robotframework.ide.eclipse.main.plugin.model.RobotSuiteFile;
import org.robotframework.red.jface.assist.RedContentProposal;
import org.robotframework.red.junit.ProjectProvider;
import org.robotframework.red.junit.ShellProvider;
public class ImportsInCodeProposalsProviderTest {
@ClassRule
public static ProjectProvider projectProvider = new ProjectProvider(ImportsInCodeProposalsProviderTest.class);
@Rule
public ShellProvider shellProvider = new ShellProvider();
@Test
public void thereAreNoProposalsProvided_whenThereIsNoImportMatchingCurrentPrefix() throws Exception {
final IFile file = projectProvider.createFile("file.robot",
"*** Settings ***",
"Resource ares.robot",
"Resource bres.robot");
final RobotSuiteFile suiteFile = RedPlugin.getModelManager().createSuiteFile(file);
final ImportsInCodeProposalsProvider provider = new ImportsInCodeProposalsProvider(suiteFile);
final RedContentProposal[] proposals = provider.getProposals("foo", 1, null);
assertThat(proposals).isEmpty();
}
@Test
public void thereAreProposalsProvided_whenPrefixIsMatchingAndProperContentIsInserted() throws Exception {
final Text text = new Text(shellProvider.getShell(), SWT.SINGLE);
text.setText("abc");
final IFile file = projectProvider.createFile("file.robot",
"*** Settings ***",
"Resource ares.robot",
"Resource bres.robot");
final RobotSuiteFile suiteFile = RedPlugin.getModelManager().createSuiteFile(file);
final ImportsInCodeProposalsProvider provider = new ImportsInCodeProposalsProvider(suiteFile);
final RedContentProposal[] proposals = provider.getProposals(text.getText(), 1, null);
assertThat(proposals).hasSize(1);
proposals[0].getModificationStrategy().insert(text, proposals[0]);
assertThat(text.getText()).isEqualTo("ares.");
}
}