]> git.tdb.fi Git - libs/core.git/blobdiff - tests/codec.cpp
Add unit tests
[libs/core.git] / tests / codec.cpp
diff --git a/tests/codec.cpp b/tests/codec.cpp
new file mode 100644 (file)
index 0000000..896ce5d
--- /dev/null
@@ -0,0 +1,41 @@
+#include <msp/stringcodec/ascii.h>
+#include <msp/stringcodec/utf8.h>
+#include <msp/test/test.h>
+
+using namespace std;
+using namespace Msp;
+
+class CodecTests: public Test::RegisteredTest<CodecTests>
+{
+public:
+       CodecTests();
+
+       static const char *get_name() { return "Codec"; }
+
+private:
+       void invalid_character();
+       void invalid_sequence();
+};
+
+
+CodecTests::CodecTests()
+{
+       add(&CodecTests::invalid_character, "invalid_character").expect_throw<StringCodec::invalid_character>();
+       add(&CodecTests::invalid_sequence, "invalid_sequence").expect_throw<StringCodec::invalid_sequence>();
+}
+
+void CodecTests::invalid_character()
+{
+       StringCodec::unichar ch = 0xE4;
+       StringCodec::Ascii::Encoder enc;
+       string buf;
+       enc.encode_char(ch, buf);
+}
+
+void CodecTests::invalid_sequence()
+{
+       string str = "\343\201";
+       string::const_iterator iter = str.begin();
+       StringCodec::Utf8::Decoder dec;
+       dec.decode_char(str, iter);
+}