001/****************************************************************
002 * Licensed to the Apache Software Foundation (ASF) under one   *
003 * or more contributor license agreements.  See the NOTICE file *
004 * distributed with this work for additional information        *
005 * regarding copyright ownership.  The ASF licenses this file   *
006 * to you under the Apache License, Version 2.0 (the            *
007 * "License"); you may not use this file except in compliance   *
008 * with the License.  You may obtain a copy of the License at   *
009 *                                                              *
010 *   http://www.apache.org/licenses/LICENSE-2.0                 *
011 *                                                              *
012 * Unless required by applicable law or agreed to in writing,   *
013 * software distributed under the License is distributed on an  *
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
015 * KIND, either express or implied.  See the License for the    *
016 * specific language governing permissions and limitations      *
017 * under the License.                                           *
018 ****************************************************************/
019
020package org.apache.james.mpt.api;
021
022import java.util.List;
023
024/**
025 * Scripts a protocol interaction.
026 */
027public interface ProtocolInteractor {
028
029    /**
030     * adds a new Client request line to the test elements
031     */
032    void CL(String clientLine);
033
034    /**
035     * adds a new Server Response line to the test elements, with the specified
036     * location.
037     */
038    void SL(String serverLine, String location);
039
040    /**
041     * adds a new Server Unordered Block to the test elements.
042     */
043    void SUB(List<String> serverLines, String location);
044
045    /**
046     * adds a new Client request line to the test elements
047     */
048    void CL(int sessionNumber, String clientLine);
049
050    /**
051     * Adds a continuation. To allow one thread to be used for testing.
052     */
053    void CONT(int sessionNumber) throws Exception;
054
055    /**
056     * adds a new Server Response line to the test elements, with the specified
057     * location.
058     */
059    void SL(int sessionNumber, String serverLine,
060            String location, String lastClientMessage);
061
062    /**
063     * adds a new Server Unordered Block to the test elements.
064     */
065    void SUB(int sessionNumber, List<String> serverLines,
066             String location, String lastClientMessage);
067
068}