separated Print and Stream mock classes from dummy implementations

feature/UrlUtils
Kenneth Barbour 2018-02-25 19:55:00 -05:00
parent cd8049bdba
commit 767e6021d8
14 changed files with 54 additions and 39 deletions

View File

@ -23,6 +23,7 @@ size_t Buffer::write(uint8_t byte)
return 1;
}
/*
size_t Buffer::write(const uint8_t * buff, size_t len)
{
size_t avail = availableToWrite();
@ -35,6 +36,7 @@ size_t Buffer::write(const uint8_t * buff, size_t len)
return toWrite;
}
*/
int Buffer::read()
{

View File

@ -1,7 +1,7 @@
#pragma once
#ifdef _TEST_
#include "dummy/DummyStream.h"
#include "Stream.h"
#else
#include "Arduino.h"
#endif
@ -10,20 +10,13 @@ class Buffer: public Stream
{
public:
Buffer(uint8_t*, size_t);
virtual size_t write(uint8_t);
size_t availableToWrite();
int available();
size_t write(uint8_t);
size_t write(const uint8_t *, size_t);
size_t write(const char * buffer) {
return write((const uint8_t *)buffer, strlen(buffer));
}
size_t write(const char * buffer, size_t size) {
return write((const uint8_t *)buffer, size);
}
int read();
int peek();
int read();
virtual void flush();
using Print::write;
private:
uint8_t * start;

View File

@ -6,7 +6,7 @@
#endif
#ifdef _TEST_
#include "dummy/DummyStream.h"
#include "Stream.h"
#else
#include "Arduino.h"
#endif

View File

@ -2,7 +2,7 @@
#include "HttpHeaders.h"
#ifdef _TEST_
#include "dummy/DummyStream.h"
#include "Stream.h"
#else
#include "Arduino.h"
#endif

12
test/DummyPrint.h 100644
View File

@ -0,0 +1,12 @@
#pragma once
#include "Print.h"
class DummyPrint: public Print
{
public:
DummyPrint(char * buff): buffer(buff), pos(0) {};
size_t write(uint8_t c) { buffer[pos++]=(char) c; buffer[pos]='\0';return 1; }
int pos;
char * buffer;
};

View File

@ -1,14 +1,5 @@
#pragma once
#include "dummy/DummyPrint.h"
class Stream: public Print
{
public:
virtual int available() = 0;
virtual int read() = 0;
virtual int peek() = 0;
virtual size_t write(uint8_t) = 0;
};
#include "Stream.h"
class DummyStream: public Stream
{

View File

@ -1,4 +1,4 @@
#include "dummy/DummyPrint.h"
#include "Print.h"
size_t Print::write(const uint8_t *buffer, size_t size)
{

View File

@ -8,9 +8,9 @@ class Print
public:
Print() {}
virtual size_t write(uint8_t) = 0;
size_t write(const char * str) {
if (str == nullptr) return 0;
return write((const uint8_t *) str, strlen(str));
size_t write(const char *str) {
if (str == NULL) return 0;
return write((const uint8_t *)str, strlen(str));
}
virtual size_t write(const uint8_t *buffer, size_t size);
size_t write(const char *buffer, size_t size) {
@ -20,13 +20,3 @@ class Print
virtual void flush() {}
};
class DummyPrint: public Print
{
public:
DummyPrint(char * buff): buffer(buff), pos(0) {};
virtual size_t write(uint8_t c) { buffer[pos++]=(char) c; buffer[pos]='\0';return 1; }
int pos;
char * buffer;
};

11
test/Stream.h 100644
View File

@ -0,0 +1,11 @@
#pragma once
#include "Print.h"
class Stream: public Print
{
public:
virtual int available() = 0;
virtual int read() = 0;
virtual int peek() = 0;
};

View File

@ -107,3 +107,17 @@ TEST_CASE("Write string without length","[Buffer][write][string]")
REQUIRE(buffer.write("Foo!") == 4);
}
TEST_CASE("Buffer is a Stream","[Buffer][Stream]")
{
uint8_t ptr[5];
Stream * buffer;
buffer = new Buffer(ptr, 5);
buffer->write('F');
REQUIRE(ptr[0] == 'F');
REQUIRE(buffer->read() == 'F');
buffer->write("Foo");
}

View File

@ -1,5 +1,5 @@
#include "catch.hpp"
#include "dummy/DummyStream.h"
#include "DummyStream.h"
#include <iostream>
TEST_CASE("DummyStream is availble","[DummyStream]")

View File

@ -1,6 +1,7 @@
#include "catch.hpp"
#include "HttpRequest.h"
#include <iostream>
#include "DummyStream.h"
using Catch::Matchers::Equals;

View File

@ -3,6 +3,7 @@
#include "HttpRequest.h"
#include "HttpResponse.h"
#include "Buffer.h"
#include "DummyStream.h"
void index(HttpRequest& request, HttpResponse& response)
{

View File

@ -1,6 +1,6 @@
#include "RequestRouter.h"
#include "catch.hpp"
#include "dummy/DummyStream.h"
#include "DummyStream.h"
#include "NotFoundException.h"
#include "MethodNotAllowedException.h"
#include <iostream>