test cases for exports
diff --git a/reclass/datatypes/tests/test_entity.py b/reclass/datatypes/tests/test_entity.py
index 4976dd3..c583bfd 100644
--- a/reclass/datatypes/tests/test_entity.py
+++ b/reclass/datatypes/tests/test_entity.py
@@ -154,6 +154,41 @@
         d = entity.as_dict()
         self.assertDictEqual(d, comp)
 
+class TestEntityNoMock(unittest.TestCase):
+
+    def test_exports_with_refs(self):
+        exports = Parameters({'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}})
+        exports_entity = Entity(None, None, None, exports)
+        node3_exports = Parameters({'a': '${a}', 'b': '${b}'})
+        node3_parameters = Parameters({'name': 'node3', 'a': '${c}', 'b': 5})
+        node3_parameters.merge({'c': 3})
+        node3_entity = Entity(None, None, node3_parameters, node3_exports)
+        r = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}, 'node3': {'a': 3, 'b': 5}}
+        node3_entity.interpolate('node3', exports)
+        self.assertDictEqual(exports.as_dict(), r)
+
+    def test_reference_to_an_export(self):
+        exports = Parameters({'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}})
+        exports_entity = Entity(None, None, None, exports)
+        node3_exports = Parameters({'a': '${a}', 'b': '${b}'})
+        node3_parameters = Parameters({'name': 'node3', 'ref': '${exp}', 'a': '${c}', 'b': 5})
+        node3_parameters.merge({'c': 3, 'exp': '$[ exports:a ]'})
+        node3_entity = Entity(None, None, node3_parameters, node3_exports)
+        r = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}, 'node3': {'a': 3, 'b': 5}}
+        node3_entity.interpolate('node3', exports)
+        self.assertDictEqual(exports.as_dict(), r)
+
+    def test_exports_with_nested_references(self):
+        exports = Parameters({'node1': {'alpha': {'a': 1, 'b': 2}}, 'node2': {'alpha': {'a': 3, 'b': 4}}})
+        exports_entity = Entity(None, None, None, exports)
+        node3_exports = Parameters({'alpha': '${alpha}'})
+        node3_parameters = Parameters({'name': 'node3', 'alpha': {'a': '${one}', 'b': '${two}'}, 'beta': '$[ exports:alpha ]', 'one': '111', 'two': '${three}', 'three': '123'})
+        node3_entity = Entity(None, None, node3_parameters, node3_exports)
+        res_params = {'beta': {'node1': {'a': 1, 'b': 2}, 'node3': {'a': '111', 'b': '123'}, 'node2': {'a': 3, 'b': 4}}, 'name': 'node3', 'alpha': {'a': '111', 'b': '123'}, 'three': '123', 'two': '123', 'one': '111'}
+        res_exps = {'node1': {'alpha': {'a': 1, 'b': 2}}, 'node2': {'alpha': {'a': 3, 'b': 4}}, 'node3': {'alpha': {'a': '111', 'b': '123'}}}
+        node3_entity.interpolate('node3', exports)
+        self.assertDictEqual(node3_parameters.as_dict(), res_params)
+        self.assertDictEqual(exports.as_dict(), res_exps)
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/reclass/datatypes/tests/test_parameters.py b/reclass/datatypes/tests/test_parameters.py
index 0315859..093c28c 100644
--- a/reclass/datatypes/tests/test_parameters.py
+++ b/reclass/datatypes/tests/test_parameters.py
@@ -408,5 +408,26 @@
         p.render_simple()
         self.assertEqual(p.as_dict(), d)
 
+    def test_value_expr_exports(self):
+        e = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}}
+        p = Parameters({'exp': '$[ exports:a ]'})
+        r = {'exp': {'node1': 1, 'node2': 3}}
+        p.interpolate(e)
+        self.assertEqual(p.as_dict(), r)
+
+    def test_if_expr_exports(self):
+        e = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}}
+        p = Parameters({'exp': '$[ exports:a if exports:b == 4 ]'})
+        r = {'exp': {'node2': 3}}
+        p.interpolate(e)
+        self.assertEqual(p.as_dict(), r)
+
+    def test_if_expr_exports_with_refs(self):
+        e = {'node1': {'a': 1, 'b': 2}, 'node2': {'a': 3, 'b': 4}}
+        p = Parameters({'exp': '$[ exports:a if exports:b == self:test_value ]', 'test_value': 2})
+        r = {'exp': {'node1': 1}, 'test_value': 2}
+        p.interpolate(e)
+        self.assertEqual(p.as_dict(), r)
+
 if __name__ == '__main__':
     unittest.main()