Relation between objects


The concept of relations between objects has only been implemented for SSAS (multidimensional) at the moment. It lets you validate that a dimension is linked to a measure-group or reciprocally that a measure-group is linked to a dimension. In the future we plan to do the same for tables in a SQL model (foreign keys).

For this kind of test, NBi proposes an assertion named linkedTo. To use it you must define a system-under-test with a structure of type dimension or measure-group.

<system-under-test>
<structure>
<dimension caption="Customer" perspective="Adventure Works"/>
</structure>
</system-under-test>

When done, you’ll have to define your assertion as an xml elemened named linkedTo and specify in the xml attribute caption the measure-group or dimension that you’re expecting linked to the previous element. Note that inside this linkedTo element you don’t need to specify the perspective of the dimension or measure-group, this information will be inferred from the system-under-test.

<assert>
<linkedTo>
<measure-group caption="Internet Sales"/>
</linkedTo>
</assert>

Here under, you’ll find a sample for both elements (dimension linked to measure-group and measure-group linked to dimension).

<?xml version="1.0" encoding="utf-8" ?>
<testSuite name="Acceptance Testing: members ordering" xmlns="http://NBi/TestSuite">
<settings>
<default apply-to="system-under-test">
<connectionString>Provider=MSOLAP.4;Data Source=(local);Initial Catalog='Adventure Works DW 2008';localeidentifier=1033</connectionString>
</default>
</settings>
<test name="Dimension 'Customer' is linked to measure-group 'Internet Sales' throw perspective 'Adventure Works'" uid="0001">
<system-under-test>
<structure>
<dimension caption="Customer" perspective="Adventure Works"/>
</structure>
</system-under-test>
<assert>
<linkedTo>
<measure-group caption="Internet Sales"/>
</linkedTo>
</assert>
</test>
<test name="Measure-group 'Internet Sales' is linked to dimension 'Internet Sales' throw perspective 'Adventure Works'" uid="0001">
<system-under-test>
<structure>
<measure-group caption="Internet Sales" perspective="Adventure Works"/>
</structure>
</system-under-test>
<assert>
<linkedTo>
<dimension caption="Customer"/>
</linkedTo>
</assert>
</test>
</testSuite>