Add another test.
authorCarl Hetherington <cth@carlh.net>
Mon, 6 Jul 2015 23:35:02 +0000 (00:35 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 6 Jul 2015 23:35:02 +0000 (00:35 +0100)
src/asset.h
test/asset_test.cc [new file with mode: 0644]
test/wscript

index f5b60bf7b3550df5ee608497856594ceea6346b7..91661a46e5395292a37bf6f305ce617c398fa709 100644 (file)
@@ -34,6 +34,8 @@ namespace xmlpp {
        class Node;
 }
 
+struct asset_test;
+
 namespace dcp {
 
 /** @class Asset
@@ -77,6 +79,8 @@ public:
        std::string hash (boost::function<void (float)> progress = 0) const;
 
 protected:
+       friend struct ::asset_test;
+
        virtual std::string pkl_type (Standard standard) const = 0;
 
        /** The most recent disk file used to read or write this asset; may be empty */
diff --git a/test/asset_test.cc b/test/asset_test.cc
new file mode 100644 (file)
index 0000000..adaeb4a
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+    Copyright (C) 2015 Carl Hetherington <cth@carlh.net>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+y    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <boost/test/unit_test.hpp>
+#include "asset.h"
+
+using std::string;
+using boost::shared_ptr;
+
+class DummyAsset : public dcp::Asset
+{
+protected:
+       std::string pkl_type (dcp::Standard standard) const {
+               return "none";
+       }
+};
+
+static void
+note_handler (dcp::NoteType, string)
+{
+
+}
+
+/** Test a few dusty corners of Asset */
+BOOST_AUTO_TEST_CASE (asset_test)
+{
+       shared_ptr<DummyAsset> a (new DummyAsset);
+       a->_hash = "abc";
+       shared_ptr<DummyAsset> b (new DummyAsset);
+       b->_hash = "def";
+
+       BOOST_CHECK (!a->equals (b, dcp::EqualityOptions (), boost::bind (&note_handler, _1, _2)));
+
+       b->_hash = "abc";
+       BOOST_CHECK (a->equals (b, dcp::EqualityOptions (), boost::bind (&note_handler, _1, _2)));
+
+       b->_file = "foo/bar/baz";
+       BOOST_CHECK (a->equals (b, dcp::EqualityOptions (), boost::bind (&note_handler, _1, _2)));
+}
index 0fae810c2fe40389de070985756570a5f2d63dc4..da306d61d93cb1e51f27416521e6f95fa82dca27 100644 (file)
@@ -25,6 +25,7 @@ def build(bld):
     else:
         obj.use = 'libdcp%s' % bld.env.API_VERSION
     obj.source = """
+                 asset_test.cc
                  certificates_test.cc
                  colour_test.cc
                  colour_conversion_test.cc