Mock WifiClient/Server classes and tests

feature/UrlUtils
Kenneth Barbour 2018-03-05 20:03:40 -05:00 committed by Kenneth Barbour
parent 53a6726d84
commit 2a6dd718f7
6 changed files with 45 additions and 18 deletions

View File

@ -1,14 +1,22 @@
#pragma once
#include "WiFiServer.h"
#include "RequestRouter.h"
#include "RouteDispatcher.h"
class WebKernel
{
public:
WebKernel(uint16_t port):
_server(port)
WebKernel(uint16_t port, Route* routes, uint8_t num):
_server(port),
_router(routes, num)
{};
WiFiServer getServer() { return _server; }
void begin() { _server.begin(); }
#ifdef _TEST_
void mock_nextClient(const char * next) { _server._next = next; }
#endif
protected:
WiFiServer _server;
RequestRouter _router;
};

View File

@ -10,12 +10,14 @@ class WiFiClient : public Stream
WiFiClient(const char * content): buffer(_buff, WIFICLIENT_BUFFER), _status(1) {
buffer.write(content);
}
WiFiClient(): buffer(_buff, WIFICLIENT_BUFFER), _status(1) {}
WiFiClient(): buffer(_buff, WIFICLIENT_BUFFER), _status(0) {}
uint8_t _status;
void stop() { _status=0; }
uint8_t connected() { return _status; }
const uint8_t connected() const { return _status; }
operator bool() const { return connected(); }
int available() { return buffer.available(); }
int read() { return buffer.read(); }

View File

@ -6,11 +6,12 @@ class WiFiServer
public:
WiFiServer(uint16_t port) : port(port) {}
WiFiClient available() {
if (!_next) return nullptr;
if (!_next) return WiFiClient();
const char * client = _next;
_next = nullptr;
return WiFiClient(client);
}
};
void begin() {};
uint16_t port;
const char * _next;

View File

@ -1,8 +0,0 @@
#include "catch.hpp"
#include "WebKernel.h"
TEST_CASE("Test getServer","[WebKernel]")
{
WebKernel kernel(80);
kernel.getServer();
}

View File

@ -3,11 +3,27 @@
TEST_CASE("Test WiFiClient","[WiFiClient]")
{
WiFiClient client;
CHECK(client.available() == 0);
CHECK(client.availableForWrite() == WIFICLIENT_BUFFER);
WiFiClient client("Foo");
CHECK(client.available() == 3);
CHECK(client.availableForWrite() == WIFICLIENT_BUFFER - 3);
CHECK(client.connected());
client.stop();
CHECK(!client.connected());
}
TEST_CASE("Test empty WiFiClient","[WiFiClient]")
{
WiFiClient client;
CHECK(!client.connected());
CHECK(client.available() == 0);
}
TEST_CASE("Test bool operator","[WiFiClient]")
{
WiFiClient client;
CHECK(!client);
WiFiClient client2("Foo");
CHECK(client2);
}

View File

@ -0,0 +1,8 @@
#include "catch.hpp"
#include "WiFiServer.h"
TEST_CASE("Test next","[WiFiServer]")
{
WiFiServer server(80);
CHECK(server.port == 80);
}