Package org.sonar.ide.intellij.model

Source Code of org.sonar.ide.intellij.model.ViolationTableModelTest

package org.sonar.ide.intellij.model;

import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.testFramework.LightVirtualFile;
import com.intellij.testFramework.PlatformUltraLiteTestFixture;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.sonar.wsclient.services.Source;
import org.sonar.wsclient.services.Violation;

import java.util.ArrayList;
import java.util.List;

public class ViolationTableModelTest {

    private ViolationTableModel model;
    private PlatformUltraLiteTestFixture myFixture;

    @Before
    public void setUp() {
        myFixture = PlatformUltraLiteTestFixture.getFixture();
        myFixture.setUp();
        model = new ViolationTableModel();
    }

    @Test
    public void testColumnNames() {
        Assert.assertEquals("Severity", model.getColumnName(0));
        Assert.assertEquals("Rule Name", model.getColumnName(1));
        Assert.assertEquals("Line Number", model.getColumnName(2));
        Assert.assertEquals("Line", model.getColumnName(3));
        Assert.assertEquals("Message", model.getColumnName(4));
        Assert.assertEquals("?", model.getColumnName(-1));
        Assert.assertEquals("?", model.getColumnName(5));
    }

    @Test
    public void testColumnClass() {
        Assert.assertEquals(String.class, model.getColumnClass(0));
        Assert.assertEquals(String.class, model.getColumnClass(1));
        Assert.assertEquals(Integer.class, model.getColumnClass(2));
        Assert.assertEquals(String.class, model.getColumnClass(3));
        Assert.assertEquals(String.class, model.getColumnClass(4));
    }

    @Test
    public void testColumnCount() {
        Assert.assertEquals(5, model.getColumnCount());
    }

    @Test
    public void testRowCount() {
        VirtualFile file = new LightVirtualFile("file.txt");
        List<Violation> violations = new ArrayList<Violation>();
        model.setViolations(file, violations);

        Assert.assertEquals(0, model.getRowCount());

        violations.add(new Violation());
        Assert.assertEquals(1, model.getRowCount());

        violations.add(new Violation());
        Assert.assertEquals(2, model.getRowCount());
    }

    @Test
    public void testCurrentVirtualFile() {
        VirtualFile file1 = new LightVirtualFile("file1.txt");
        VirtualFile file2 = new LightVirtualFile("file1.txt");

        Assert.assertNull(model.getCurrentVirtualFile());

        model.setViolations(file1, new ArrayList<Violation>());
        Assert.assertEquals(file1, model.getCurrentVirtualFile());

        model.setSource(file2, new Source());
        Assert.assertEquals(file2, model.getCurrentVirtualFile());
    }

    @Test
    public void settingViolationsOrSourceWithADifferentVirtualFileResetsOther() {
        VirtualFile file1 = new LightVirtualFile("file1.txt");
        VirtualFile file2 = new LightVirtualFile("file1.txt");

        ArrayList<Violation> violations = new ArrayList<Violation>();
        violations.add(new Violation());
        model.setViolations(file1, violations);
        Assert.assertSame(violations, model.violations);
        Assert.assertNull(model.source);

        Source source = new Source();
        model.setSource(file2, source);
        Assert.assertNotSame(violations, model.violations);
        Assert.assertSame(source, model.source);
    }

    @Test
    public void testValueAt() {
        VirtualFile file = new LightVirtualFile("file.txt");

        // Add violations
        Violation violation1 = new Violation();
        violation1.setSeverity("Major");
        violation1.setRuleName("A rule");
        violation1.setLine(null);
        violation1.setMessage("This violation has no line associated with it");

        Violation violation2 = new Violation();
        violation2.setSeverity("Minor");
        violation2.setRuleName("Another rule");
        violation2.setLine(10);
        violation2.setMessage("This violation has a line associated with it");

        List<Violation> violations = new ArrayList<Violation>();
        violations.add(violation1);
        violations.add(violation2);

        model.setViolations(file, violations);

        Assert.assertEquals(model.getValueAt(0, 0), "Major");
        Assert.assertEquals(model.getValueAt(0, 1), "A rule");
        Assert.assertEquals(model.getValueAt(0, 2), null);
        Assert.assertEquals(model.getValueAt(0, 3), "UNKNOWN");
        Assert.assertEquals(model.getValueAt(0, 4), "This violation has no line associated with it");

        Assert.assertEquals(model.getValueAt(1, 0), "Minor");
        Assert.assertEquals(model.getValueAt(1, 1), "Another rule");
        Assert.assertEquals(model.getValueAt(1, 2), 10);
        Assert.assertEquals(model.getValueAt(1, 3), "UNKNOWN");
        Assert.assertEquals(model.getValueAt(1, 4), "This violation has a line associated with it");


        // Add source code
        Source source = new Source();
        source.addLine(10, "x = 123");

        model.setSource(file, source);

        Assert.assertEquals(model.getValueAt(0, 0), "Major");
        Assert.assertEquals(model.getValueAt(0, 1), "A rule");
        Assert.assertEquals(model.getValueAt(0, 2), null);
        Assert.assertEquals(model.getValueAt(0, 3), "UNKNOWN");
        Assert.assertEquals(model.getValueAt(0, 4), "This violation has no line associated with it");

        Assert.assertEquals(model.getValueAt(1, 0), "Minor");
        Assert.assertEquals(model.getValueAt(1, 1), "Another rule");
        Assert.assertEquals(model.getValueAt(1, 2), 10);
        Assert.assertEquals(model.getValueAt(1, 3), "x = 123");
        Assert.assertEquals(model.getValueAt(1, 4), "This violation has a line associated with it");
    }
}
TOP

Related Classes of org.sonar.ide.intellij.model.ViolationTableModelTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.