1dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski/* 2dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * Copyright (C) 2014 The Android Open Source Project 3dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * 4dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * you may not use this file except in compliance with the License. 6dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * You may obtain a copy of the License at 7dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * 8dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * 10dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * Unless required by applicable law or agreed to in writing, software 11dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * See the License for the specific language governing permissions and 14dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski * limitations under the License. 15dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski */ 16dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 17dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski#include "TestRules.h" 18dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 19dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski#include <utils/String8.h> 20dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 21dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiusing android::String8; 22dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiusing android::sp; 23dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 24dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskinamespace split { 25dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskinamespace test { 26dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 27dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiconst Rule EqRule(Rule::Key key, long value) { 28dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski Rule rule; 29dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.op = Rule::EQUALS; 30dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.key = key; 31dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.longArgs.add(value); 32dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return rule; 33dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 34dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 35dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiconst Rule GtRule(Rule::Key key, long value) { 36dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski Rule rule; 37dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.op = Rule::GREATER_THAN; 38dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.key = key; 39dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.longArgs.add(value); 40dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return rule; 41dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 42dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 43dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiconst Rule LtRule(Rule::Key key, long value) { 44dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski Rule rule; 45dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.op = Rule::LESS_THAN; 46dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.key = key; 47dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.longArgs.add(value); 48dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return rule; 49dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 50dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 51dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiconst Rule ContainsAnyRule(Rule::Key key, const char* str1) { 52dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski Rule rule; 53dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.op = Rule::CONTAINS_ANY; 54dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.key = key; 55dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.stringArgs.add(String8(str1)); 56dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return rule; 57dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 58dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 59dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiconst Rule ContainsAnyRule(Rule::Key key, const char* str1, const char* str2) { 60dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski Rule rule; 61dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.op = Rule::CONTAINS_ANY; 62dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.key = key; 63dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.stringArgs.add(String8(str1)); 64dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.stringArgs.add(String8(str2)); 65dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return rule; 66dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 67dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 68dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinskiconst Rule AlwaysTrue() { 69dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski Rule rule; 70dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski rule.op = Rule::ALWAYS_TRUE; 71dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return rule; 72dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 73dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 74dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski::testing::AssertionResult RulePredFormat( 75dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski const char*, const char*, 76dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski const sp<Rule>& actual, const Rule& expected) { 77dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski const String8 expectedStr(expected.toJson()); 78c3344e8a6d7402326204d1232a4c5ffa382f70a9Adam Lesinski const String8 actualStr(actual != NULL ? actual->toJson() : String8()); 79dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 80dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski if (expectedStr != actualStr) { 81dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return ::testing::AssertionFailure() 82dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski << "Expected: " << expectedStr.string() << "\n" 83dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski << " Actual: " << actualStr.string(); 84dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski } 85dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski return ::testing::AssertionSuccess(); 86dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} 87dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 88dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski 89dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} // namespace test 90dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski} // namespace split 91