diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-23 05:25:45 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-23 05:25:45 +0000 |
commit | e5d978186780787e8dad6681cca139486df93643 (patch) | |
tree | 85a837c0e230de4144743f090b2fe714cbb29fec /sca-cpp/trunk/kernel/cache-test.cpp | |
parent | 585f81b9436e137c3ed784d9a91efa9e6e792e03 (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.cpp | 79 |
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; +} |