/* * Copyright 2015 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.mockmodel; import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.List; import org.robotframework.ide.eclipse.main.plugin.model.RobotSuiteFile; import org.robotframework.ide.eclipse.main.plugin.model.RobotSuiteStreamFile; import com.google.common.base.Joiner; /** * @author Michal Anglart * */ public class RobotSuiteFileCreator { private final List<String> lines = new ArrayList<>(); public RobotSuiteFileCreator appendLine(final String line) { lines.add(line); return this; } public RobotSuiteFileCreator appendLines(final List<String> lines) { this.lines.addAll(lines); return this; } public String getContent() { return Joiner.on('\n').join(lines); } public RobotSuiteFile build() { return buildModel("file.robot", false); } public RobotSuiteFile buildTsv() { return buildModel("file.tsv", false); } public RobotSuiteFile buildReadOnly() { return buildModel("file.robot", true); } public RobotSuiteFile buildReadOnlyTsv() { return buildModel("file.tsv", true); } private RobotSuiteFile buildModel(final String filename, final boolean readOnly) { final String content = getContent(); final ByteArrayInputStream stream = new ByteArrayInputStream(content.getBytes()); final RobotSuiteStreamFile model = new RobotSuiteStreamFile(filename, stream, readOnly); model.reparseEverything(content); return model; } }