/* * Copyright 2016 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.rf.ide.core.testdata.text.write.tables.keywords.creation; import org.junit.Test; import org.rf.ide.core.testdata.model.RobotFile; import org.rf.ide.core.testdata.model.table.KeywordTable; import org.rf.ide.core.testdata.model.table.keywords.KeywordTimeout; import org.rf.ide.core.testdata.model.table.keywords.UserKeyword; import org.rf.ide.core.testdata.text.read.recognizer.RobotToken; import org.rf.ide.core.testdata.text.write.NewRobotFileTestHelper; public abstract class ACreationOfKeywordTimeoutTest { public static final String PRETTY_NEW_DIR_LOCATION = "keywords//setting//timeout//new//"; private final String extension; public ACreationOfKeywordTimeoutTest(final String extension) { this.extension = extension; } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withoutKeywordName_andTimeoutDecOnly() throws Exception { test_timeoutDecOnly("EmptyKeywordTimeoutNoKeywordName", ""); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withKeywordName_andTimeoutDecOnly() throws Exception { test_timeoutDecOnly("EmptyKeywordTimeout", "User Keyword"); } private void test_timeoutDecOnly(final String fileNameWithoutExt, final String userKeywordName) throws Exception { // prepare final String filePath = PRETTY_NEW_DIR_LOCATION + fileNameWithoutExt + "." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeKeywordTableSection(); KeywordTable keywordTable = modelFile.getKeywordTable(); RobotToken keyName = new RobotToken(); keyName.setText(userKeywordName); UserKeyword uk = new UserKeyword(keyName); keywordTable.addKeyword(uk); uk.newTimeout(); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(filePath, modelFile); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withoutKeywordName_andTimeoutDec_withComment() throws Exception { test_timeoutDec_withCommentOnly("EmptyKeywordTimeoutCommentNoKeywordName", ""); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withKeywordName_andTimeoutDec_withComment() throws Exception { test_timeoutDec_withCommentOnly("EmptyKeywordTimeoutComment", "User Keyword"); } private void test_timeoutDec_withCommentOnly(final String fileNameWithoutExt, final String userKeywordName) throws Exception { // prepare final String filePath = PRETTY_NEW_DIR_LOCATION + fileNameWithoutExt + "." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeKeywordTableSection(); KeywordTable keywordTable = modelFile.getKeywordTable(); RobotToken keyName = new RobotToken(); keyName.setText(userKeywordName); UserKeyword uk = new UserKeyword(keyName); keywordTable.addKeyword(uk); KeywordTimeout keyTimeout = uk.newTimeout(); RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); keyTimeout.addCommentPart(cmTok1); keyTimeout.addCommentPart(cmTok2); keyTimeout.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(filePath, modelFile); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withoutKeywordName_andTimeoutDec_withValue() throws Exception { test_timeoutDec_withComment_andValue("EmptyKeywordTimeoutWithValueNoKeywordName", ""); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withKeywordName_andTimeoutDec_withValue() throws Exception { test_timeoutDec_withComment_andValue("EmptyKeywordTimeoutWithValue", "User Keyword"); } private void test_timeoutDec_withComment_andValue(final String fileNameWithoutExt, final String userKeywordName) throws Exception { // prepare final String filePath = PRETTY_NEW_DIR_LOCATION + fileNameWithoutExt + "." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeKeywordTableSection(); KeywordTable keywordTable = modelFile.getKeywordTable(); RobotToken keyName = new RobotToken(); keyName.setText(userKeywordName); UserKeyword uk = new UserKeyword(keyName); keywordTable.addKeyword(uk); KeywordTimeout keyTimeout = uk.newTimeout(); RobotToken timeout = new RobotToken(); timeout.setText("1 hours"); keyTimeout.setTimeout(timeout); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(filePath, modelFile); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withoutKeywordName_andTimeoutDec_withValue_andComment() throws Exception { test_timeoutDec_withComment_andValue_andComment("EmptyKeywordTimeoutWithValueAndCommentNoKeywordName", ""); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withKeywordName_andTimeoutDec_withValue_andComment() throws Exception { test_timeoutDec_withComment_andValue_andComment("EmptyKeywordTimeoutWithValueAndComment", "User Keyword"); } private void test_timeoutDec_withComment_andValue_andComment(final String fileNameWithoutExt, final String userKeywordName) throws Exception { // prepare final String filePath = PRETTY_NEW_DIR_LOCATION + fileNameWithoutExt + "." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeKeywordTableSection(); KeywordTable keywordTable = modelFile.getKeywordTable(); RobotToken keyName = new RobotToken(); keyName.setText(userKeywordName); UserKeyword uk = new UserKeyword(keyName); keywordTable.addKeyword(uk); KeywordTimeout keyTimeout = uk.newTimeout(); RobotToken timeout = new RobotToken(); timeout.setText("1 hours"); keyTimeout.setTimeout(timeout); RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); keyTimeout.addCommentPart(cmTok1); keyTimeout.addCommentPart(cmTok2); keyTimeout.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(filePath, modelFile); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withoutKeywordName_andTimeoutDec_withValue_and3MsgArgs() throws Exception { test_timeoutDec_withComment_andValue_and3MsgArgs("KeywordTimeoutWithValueAnd3MsgArgsNoKeywordName", ""); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withKeywordName_andTimeoutDec_withValue_and3MsgArgs() throws Exception { test_timeoutDec_withComment_andValue_and3MsgArgs("KeywordTimeoutWithValueAnd3MsgArgs", "User Keyword"); } private void test_timeoutDec_withComment_andValue_and3MsgArgs(final String fileNameWithoutExt, final String userKeywordName) throws Exception { // prepare final String filePath = PRETTY_NEW_DIR_LOCATION + fileNameWithoutExt + "." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeKeywordTableSection(); KeywordTable keywordTable = modelFile.getKeywordTable(); RobotToken keyName = new RobotToken(); keyName.setText(userKeywordName); UserKeyword uk = new UserKeyword(keyName); keywordTable.addKeyword(uk); KeywordTimeout keyTimeout = uk.newTimeout(); RobotToken timeout = new RobotToken(); timeout.setText("1 hours"); keyTimeout.setTimeout(timeout); RobotToken msg1 = new RobotToken(); msg1.setText("msg1"); RobotToken msg2 = new RobotToken(); msg2.setText("msg2"); RobotToken msg3 = new RobotToken(); msg3.setText("msg3"); keyTimeout.addMessagePart(msg1); keyTimeout.addMessagePart(msg2); keyTimeout.addMessagePart(msg3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(filePath, modelFile); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withoutKeywordName_andTimeoutDec_withValue_and3MsgArgs_andComment() throws Exception { test_timeoutDec_withComment_andValue_and3MsgArgs_andComment( "KeywordTimeoutWithValueAnd3MsgArgsAndCommentNoKeywordName", ""); } @Test public void test_emptyFile_and_thanCreateKeywordTimeout_withKeywordName_andTimeoutDec_withValue_and3MsgArgs_andComment() throws Exception { test_timeoutDec_withComment_andValue_and3MsgArgs_andComment("KeywordTimeoutWithValueAnd3MsgArgsAndComment", "User Keyword"); } private void test_timeoutDec_withComment_andValue_and3MsgArgs_andComment(final String fileNameWithoutExt, final String userKeywordName) throws Exception { // prepare final String filePath = PRETTY_NEW_DIR_LOCATION + fileNameWithoutExt + "." + getExtension(); final RobotFile modelFile = NewRobotFileTestHelper.getModelFileToModify("2.9"); // test data prepare modelFile.includeKeywordTableSection(); KeywordTable keywordTable = modelFile.getKeywordTable(); RobotToken keyName = new RobotToken(); keyName.setText(userKeywordName); UserKeyword uk = new UserKeyword(keyName); keywordTable.addKeyword(uk); KeywordTimeout keyTimeout = uk.newTimeout(); RobotToken timeout = new RobotToken(); timeout.setText("1 hours"); keyTimeout.setTimeout(timeout); RobotToken msg1 = new RobotToken(); msg1.setText("msg1"); RobotToken msg2 = new RobotToken(); msg2.setText("msg2"); RobotToken msg3 = new RobotToken(); msg3.setText("msg3"); keyTimeout.addMessagePart(msg1); keyTimeout.addMessagePart(msg2); keyTimeout.addMessagePart(msg3); RobotToken cmTok1 = new RobotToken(); cmTok1.setText("cm1"); RobotToken cmTok2 = new RobotToken(); cmTok2.setText("cm2"); RobotToken cmTok3 = new RobotToken(); cmTok3.setText("cm3"); keyTimeout.addCommentPart(cmTok1); keyTimeout.addCommentPart(cmTok2); keyTimeout.addCommentPart(cmTok3); // verify NewRobotFileTestHelper.assertNewModelTheSameAsInFile(filePath, modelFile); } public String getExtension() { return extension; } }