Skip to content

Instantly share code, notes, and snippets.

@dEn13L
Last active August 29, 2015 14:24
Show Gist options
  • Select an option

  • Save dEn13L/0010fe93fc502cb4f688 to your computer and use it in GitHub Desktop.

Select an option

Save dEn13L/0010fe93fc502cb4f688 to your computer and use it in GitHub Desktop.
proxy util
/**
* Главный класс
*/
public class AMProxy {
public enum CasePlatform {
Android("android"),
iOS("ios"),
Mac("mac"),
WP("wp"),
WS("ws")
}
public AMProxy() {
// инициалиация прокси утилиты с дефолтным портом
// парсинг всех json файлов и инициализация по ним кейсов и тестов в нем
}
/**
* @param port - порт, который должна слушать утилита
*/
public AMProxy(int port) {
// инициалиация прокси утилиты с указанным портом
// парсинг всех json файлов и инициализация по ним кейсов и тестов в нем
}
/**
* @param cases - массив конфигов
*/
public AMProxy(String[] cases) {
// инициалиация прокси утилиты с дефолтным портом
// инициализация по cases кейсов и тестов в нем
// json искать и парсить не надо
}
/**
* @param cases - массив конфигов
* @param port - порт, который должна слушать утилита
*/
public AMProxy(String[] cases, int port) {
// инициалиация прокси утилиты с указанным портом
// инициализация по cases кейсов и тестов в нем
// json искать и парсить не надо
}
/**
* Возвращает массив всех кейсов из всех файлов
*/
public List<AMCase> getCases() {
return cases;
}
/**
* Возвращает массив всех кейсов из всех файлов для указанной платформы
*/
public List<AMCase> getCases(CasePlatform casePlatform) {
// Поиск кейсов для указанной платформы
return cases;
}
/**
* Возвращает требуемый case или null, если не нашел ничего
*/
public AMCase getCase(CasePlatform casePlatform, String caseName) {
// Поиск кейса
return amCase;
}
}
/**
* Использование
*/
public static void main(String args[]) {
// создает экземпляр снифера
AMProxy amProxy = new AMProxy();
// напечатать локальный адрес
String localIp = amProxy.getLocalIp();
System.out.println("localIp: " + localIp);
// напечатать локальный порт
String localPort = amProxy.getLocalPort();
System.out.println("localPort: " + localPort);
// экземпляр интерфейсса для обработки после проверки кейса
ICase iCase = new ICase() {
@Override
// принимает объект типа кейс
public void caseResult(AMCase amCase) {
// если статут данного кейса положительный...
if (amCase.getStatus()) {
System.out.println("Case " + amCase.getName() + " successfully finished");
} else {
System.out.println("Case " + amCase.getName() + " failed");
}
}
};
// устанавливает список кейсов из всех файлов типа .json, которые нашел в ресурсах /resources/*.json
List<AMCase> amCaseList = amProxy.getCases();
AMCase amCase = amProxy.getCase(CasePlatform.Android, "Paid");
// запуск проверки кейса
// сначала набираются пары реквестов-респонсов в очередь в течении длительности кейса(duration)
// потом происходит сравнение с кейсом
// по окончнии сравнения вызывается iCase
amProxy.execute(amCase, iCase);
// отдает список тестов данного кейса для информации
List<AMTest> amTestList = amCase.getTests();
for (AMTest amTest : amTestList) {
// выводит имя теста и статус( true / false ) теста
System.out.println( amTest.getName() );
System.out.println( "test status = " + amTest.getStatus() );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment