83 lines
2.2 KiB
C++
Executable File

/* Copyright 2011 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* $Revision: 88625 $
*/
#pragma once
#include <string>
#include "teamcity_messages.h"
namespace JetBrains {
class SourceLine
{
public:
SourceLine():lineNumber(-1){}
SourceLine(const std::string& theFile, int theLineNum):fileName(theFile),lineNumber(theLineNum){}
~SourceLine(){}
std::string fileName;
int lineNumber;
bool isValid() const {return (!fileName.empty() && lineNumber > -1);}
};
class TestFailure
{
public:
std::string details;
SourceLine sourceLine;
std::string testName;
std::string description;
public:
TestFailure(){}
~TestFailure(){}
TestFailure(const std::string& theTestName, const std::string& theDetails, SourceLine theSourcelLine, const std::string& theDescription)
{
testName = theTestName;
details = theDetails;
sourceLine = theSourcelLine;
description = theDescription;
}
};
class TeamcityProgressListener
{
public:
TeamcityMessages messages;
public:
TeamcityProgressListener(const std::string& _flowid);
TeamcityProgressListener();
~TeamcityProgressListener(){}
void startTest(const std::string& test);
void addFailure(const TestFailure &failure);
void endTest(const std::string& test);
void startSuite(const std::string& test);
void endSuite(const std::string& test);
private:
std::string flowid;
// Prevents the use of the copy constructor.
TeamcityProgressListener(const TeamcityProgressListener &copy);
// Prevents the use of the copy operator.
void operator =(const TeamcityProgressListener &copy);
};
}