org.robotframework.ide.eclipse.main.plugin.preferences.FoldingPreferencePageTest.java Source code

Java tutorial

Introduction

Here is the source code for org.robotframework.ide.eclipse.main.plugin.preferences.FoldingPreferencePageTest.java

Source

/*
 * 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.preferences;

import static com.google.common.collect.Lists.newArrayList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verifyZeroInteractions;

import java.util.List;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.junit.Rule;
import org.junit.Test;
import org.robotframework.ide.eclipse.main.plugin.RedPreferences;
import org.robotframework.red.junit.ShellProvider;

public class FoldingPreferencePageTest {

    @Rule
    public ShellProvider shellProvider = new ShellProvider();

    @Test
    public void initDoesNothing() {
        final IWorkbench workbench = mock(IWorkbench.class);

        final FoldingPreferencePage page = new FoldingPreferencePage();
        page.init(workbench);

        verifyZeroInteractions(workbench);
    }

    @Test
    public void thereAreBooleanEditorsForEachFoldableElementAndIntegerEditorForLinespan() throws Exception {
        final FoldingPreferencePage page = new FoldingPreferencePage();
        page.createControl(shellProvider.getShell());

        final List<String> booleanPrefNames = newArrayList(RedPreferences.FOLDABLE_SECTIONS,
                RedPreferences.FOLDABLE_CASES, RedPreferences.FOLDABLE_KEYWORDS,
                RedPreferences.FOLDABLE_DOCUMENTATION);

        final List<FieldEditor> editors = FieldEditorPreferencePageHelper.getEditors(page);
        assertThat(editors).hasSize(5);
        for (final FieldEditor editor : editors) {
            if (editor instanceof BooleanFieldEditor) {
                booleanPrefNames.remove(editor.getPreferenceName());
            } else if (editor instanceof IntegerFieldEditor) {
                final IntegerFieldEditor lineLimitEditor = (IntegerFieldEditor) editor;
                assertThat(lineLimitEditor.getPreferenceName()).isEqualTo(RedPreferences.FOLDING_LINE_LIMIT);
            }
        }
        assertThat(booleanPrefNames).isEmpty();
    }
}