diff options
author | Charles Giardina <cgiardina@liveramp.com> | 2018-09-11 15:58:42 -0700 |
---|---|---|
committer | James E. King III <jking@apache.org> | 2018-09-15 09:47:14 -0400 |
commit | 180888820aa7d48485364718eeabbcfe8cba4edf (patch) | |
tree | b23c2c063003109e231d84405cc44711440a90b5 /test/rb | |
parent | f74bc7b8bc2e5db69b4939d987f3c66109e8c3de (diff) | |
download | thrift-180888820aa7d48485364718eeabbcfe8cba4edf.tar.gz |
THRIFT-4631 Fix Ruby codegen to gen valid ruby for recursive structs
Diffstat (limited to 'test/rb')
-rw-r--r-- | test/rb/Makefile.am | 1 | ||||
-rw-r--r-- | test/rb/generation/test_recursive.rb | 41 |
2 files changed, 42 insertions, 0 deletions
diff --git a/test/rb/Makefile.am b/test/rb/Makefile.am index 4bd470481..cfdc1496e 100644 --- a/test/rb/Makefile.am +++ b/test/rb/Makefile.am @@ -20,6 +20,7 @@ stubs: $(THRIFT) ../ThriftTest.thrift ../SmallTest.thrift $(THRIFT) --gen rb ../ThriftTest.thrift $(THRIFT) --gen rb ../SmallTest.thrift + $(THRIFT) --gen rb ../Recursive.thrift precross: stubs diff --git a/test/rb/generation/test_recursive.rb b/test/rb/generation/test_recursive.rb new file mode 100644 index 000000000..e912f72f5 --- /dev/null +++ b/test/rb/generation/test_recursive.rb @@ -0,0 +1,41 @@ +# +# 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. +# + +require File.join(File.dirname(__FILE__), '../test_helper') +require 'recursive_types' + +class TestRecursiveGeneration < Test::Unit::TestCase + CHILD_ITEM = "child item" + PARENT_ITEM = "parent item" + + def test_can_create_recursive_tree + + child_tree = RecTree.new + child_tree.item = CHILD_ITEM + + parent_tree = RecTree.new + parent_tree.item = PARENT_ITEM + parent_tree.children = [child_tree] + + assert_equal(PARENT_ITEM, parent_tree.item) + assert_equal(1, parent_tree.children.length) + assert_equal(CHILD_ITEM, parent_tree.children.first.item) + assert_nil(parent_tree.children.first.children) + end +end |