Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Unit Test Help


Go to End


3 Posts   1137 Views

Avatar
Ryoken

Community Member, 18 Posts

10 March 2011 at 4:28am

I'm writing Unit tests for some of my code, and I'm running into some problems..

I'll make a basic scenario --

class Alpha extends page{

static $belongs_many_many = array('Betas' => 'Beta');
}

class Beta extends page{

static $many_many = array('Alphas' => 'Alpha');
}

Now in my yml file I have :

Alpha:
a1:
Title: Alpha 1

Beta:
b1:
Title: Beta 1
Alphas: =>Alpha.a1

When I try an run one of my tests I get:
'Undefined index: Alpha'
PHPUnit_Util_ErrorHandler::handleError( 8, Undefined index: Alpha, ...path..., 246, Array)
YamlFixture->parseFixtureVal(=>Alpha.a1)
...

There really aren't many examples of dealing with many_many relations in SS's PHPUnit testing, so I'm clearly doing something wrong, but none of my tests have got me a working result :/

Avatar
Willr

Forum Moderator, 5523 Posts

10 March 2011 at 2:23pm

Have a look at ComponentSetTest. That has a many_many so you should be able to use that (and the yaml) as reference.

Avatar
Ryoken

Community Member, 18 Posts

12 March 2011 at 9:28am

Thanks, that helped me try a few things that solved the problem..

The issue seems to be the order of elements in the YML file..

Basically, and I guess it wasn't reflected in my sample code, I was defining b1, and it's relation to Alphas a1 before I had defined a1.