summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/kernel/cache-test.cpp
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:25:45 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:25:45 +0000
commite5d978186780787e8dad6681cca139486df93643 (patch)
tree85a837c0e230de4144743f090b2fe714cbb29fec /sca-cpp/trunk/kernel/cache-test.cpp
parent585f81b9436e137c3ed784d9a91efa9e6e792e03 (diff)
Refactored memcached support into an SCA component. Moved cache monad functions to kernel.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@883250 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/kernel/cache-test.cpp')
-rw-r--r--sca-cpp/trunk/kernel/cache-test.cpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/sca-cpp/trunk/kernel/cache-test.cpp b/sca-cpp/trunk/kernel/cache-test.cpp
new file mode 100644
index 0000000000..5391d38cf6
--- /dev/null
+++ b/sca-cpp/trunk/kernel/cache-test.cpp
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+/**
+ * Test cache functions.
+ */
+
+#include <assert.h>
+#include <sys/time.h>
+#include <time.h>
+#include <iostream>
+#include <string>
+#include <fstream>
+#include "slist.hpp"
+#include "cache.hpp"
+
+namespace tuscany {
+
+const std::string fileRead(const std::string path) {
+ std::ifstream is(path);
+ return car(streamList(is));
+}
+
+bool testCache() {
+ const std::string p("tmp/test.txt");
+ const lambda<std::string(std::string)> fr(fileRead);
+ const lambda<time_t(std::string)> ft(latestFileTime);
+
+ const cached<std::string> c(curry(fr, p), curry(ft, p));
+
+ {
+ std::ofstream os(p);
+ os << "initial";
+ os.close();
+ assert(content(latest(c)) == std::string("initial"));
+ }
+
+ usleep(1000000);
+
+ {
+ std::ofstream os(p);
+ os << "updated";
+ os.close();
+ assert(latest(c) != c);
+ assert(content(latest(c)) == std::string("updated"));
+ assert(latest(c) == latest(c));
+ }
+ return true;
+}
+
+}
+
+int main() {
+ std::cout << "Testing..." << std::endl;
+
+ tuscany::testCache();
+
+ std::cout << "OK" << std::endl;
+
+ return 0;
+}