| /* |
| * 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. |
| */ |
| |
| #include <CacheXmlParser.hpp> |
| |
| #include <gtest/gtest.h> |
| |
| using apache::geode::client::CacheXmlParser; |
| |
| std::string xsd_prefix = R"(<?xml version='1.0' encoding='UTF-8'?> |
| <client-cache |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns="http://geode.apache.org/schema/cache" |
| xsi:schemaLocation="http://geode.apache.org/schema/cpp-cache-1.0.xsd" |
| version='10.0' |
| >)"; |
| |
| std::string valid_cache_config_body = R"(<root-region name = 'Root1' > |
| <region-attributes scope='local' |
| caching-enabled='true' |
| initial-capacity='25' |
| load-factor='0.32' |
| concurrency-level='10' |
| lru-entries-limit = '35'> |
| <region-idle-time> |
| <expiration-attributes timeout='20s' action='destroy'/> |
| </region-idle-time> |
| <entry-idle-time> |
| <expiration-attributes timeout='10s' action='invalidate'/> |
| </entry-idle-time> |
| <region-time-to-live> |
| <expiration-attributes timeout='0s' action='local-destroy'/> |
| </region-time-to-live> |
| <entry-time-to-live> |
| <expiration-attributes timeout='0s' action='local-invalidate'/> |
| </entry-time-to-live> |
| </region-attributes> |
| <region name='SubRegion1'> |
| <region-attributes scope='local' |
| caching-enabled='true' |
| initial-capacity='23' |
| load-factor='0.89' |
| concurrency-level='52'> |
| </region-attributes> |
| </region> |
| </root-region> |
| <root-region name= 'Root2'> |
| <region-attributes scope='local' |
| caching-enabled='true' |
| initial-capacity='16' |
| load-factor='0.75' |
| concurrency-level='16'> |
| <region-time-to-live> |
| <expiration-attributes timeout='0s' action='destroy'/> |
| </region-time-to-live> |
| <region-idle-time> |
| <expiration-attributes timeout='0s' action='invalidate'/> |
| </region-idle-time> |
| <entry-time-to-live> |
| <expiration-attributes timeout='0s' action='destroy'/> |
| </entry-time-to-live> |
| <entry-idle-time> |
| <expiration-attributes timeout='0s' action='invalidate'/> |
| </entry-idle-time> |
| </region-attributes> |
| <region name='SubRegion21'> |
| <region-attributes scope='local' |
| caching-enabled='true' |
| initial-capacity='16' |
| load-factor='0.75' |
| concurrency-level='16'> |
| <region-idle-time> |
| <expiration-attributes timeout='20s' action='destroy'/> |
| </region-idle-time> |
| <entry-idle-time> |
| <expiration-attributes timeout='10s' action='invalidate'/> |
| </entry-idle-time> |
| </region-attributes> |
| </region> |
| <region name='SubRegion22'> |
| <region name='SubSubRegion221'> |
| </region> |
| </region> |
| </root-region> |
| </client-cache>)"; |
| |
| TEST(CacheXmlParser, CanParseRegionConfigFromAValidXsdCacheConfig) { |
| CacheXmlParser parser(nullptr); |
| std::string xml = xsd_prefix + valid_cache_config_body; |
| parser.parseMemory(xml.c_str(), static_cast<int>(xml.length())); |
| } |