Nasal: tests for new operators
- test for nil-member-access - test for chained nil
This commit is contained in:
parent
402690d43f
commit
d569d72ea8
2 changed files with 46 additions and 0 deletions
test_suite/unit_tests/Scripting
|
@ -292,3 +292,45 @@ void NasalSysTests::testKeywordArgInHash()
|
|||
)");
|
||||
CPPUNIT_ASSERT(ok);
|
||||
}
|
||||
|
||||
void NasalSysTests::testNullAccess()
|
||||
{
|
||||
auto nasalSys = globals->get_subsystem<FGNasalSys>();
|
||||
nasalSys->getAndClearErrorList();
|
||||
|
||||
bool ok = FGTestApi::executeNasal(R"(
|
||||
var s = {
|
||||
bar: 42
|
||||
};
|
||||
|
||||
unitTest.assert_equal(s?.bar, 42);
|
||||
|
||||
var t = nil;
|
||||
var z = t?.bar;
|
||||
unitTest.assert_equal(z, nil);
|
||||
|
||||
|
||||
)");
|
||||
CPPUNIT_ASSERT(ok);
|
||||
auto errors = nasalSys->getAndClearErrorList();
|
||||
CPPUNIT_ASSERT_EQUAL(errors.size(), static_cast<size_t>(0));
|
||||
}
|
||||
|
||||
void NasalSysTests::testNullishChain()
|
||||
{
|
||||
auto nasalSys = globals->get_subsystem<FGNasalSys>();
|
||||
nasalSys->getAndClearErrorList();
|
||||
|
||||
bool ok = FGTestApi::executeNasal(R"(
|
||||
var t = nil;
|
||||
var s = 'abc';
|
||||
|
||||
unitTest.assert_equal(t ?? 99, 99);
|
||||
unitTest.assert_equal(s ?? 'default', 'abc');
|
||||
unitTest.assert_equal(t ?? 'default', 'default');
|
||||
)");
|
||||
|
||||
CPPUNIT_ASSERT(ok);
|
||||
auto errors = nasalSys->getAndClearErrorList();
|
||||
CPPUNIT_ASSERT_EQUAL(errors.size(), static_cast<size_t>(0));
|
||||
}
|
||||
|
|
|
@ -38,6 +38,8 @@ class NasalSysTests : public CppUnit::TestFixture
|
|||
CPPUNIT_TEST(testRoundFloor);
|
||||
CPPUNIT_TEST(testRange);
|
||||
CPPUNIT_TEST(testKeywordArgInHash);
|
||||
CPPUNIT_TEST(testNullAccess);
|
||||
CPPUNIT_TEST(testNullishChain);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
public:
|
||||
|
@ -55,6 +57,8 @@ public:
|
|||
void testRoundFloor();
|
||||
void testRange();
|
||||
void testKeywordArgInHash();
|
||||
void testNullAccess();
|
||||
void testNullishChain();
|
||||
};
|
||||
|
||||
#endif // _FG_NASALSYS_UNIT_TESTS_HXX
|
||||
|
|
Loading…
Add table
Reference in a new issue