November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
Hi Nat,
The code looks ok. You don't need to set the ContentGuid
on your ContentAreaItem
(as you're setting the ContentLink
), but that shouldn't be related to the exception.
It's a NullReferenceException
you're seeing, which probably means that your myContentArea is null. Is your code example the same as the sample you provided? If you set a breakpoint you should be easily able to identify the problem.
From the top of my head, you should not create new content area like that, but
var page = repo.GetDefault<MyPageType>(ContentReference.EmptyReference);
var cai = new ContentAreaItem{
ContentGuid = Guid.NewGuid(),
ContentLink = new ContentReference(123)
};
page.TheContentArea.Items.Add(cai);
Also ContentReference.EmptyReference does not make senses here.
of course I could be wrong thought
It is a NullReferenceException
, but not because the ContentArea
is null.
at EPiServer.Core.ContentArea.AddContentAreaItemsToFragments(IList items, Int32 startIndex)
at EPiServer.Core.ContentArea.ModifyCollectionInternally(Action modification)
at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
The ContentReference.EmtyReference
is just a parent ref, so really doesnt matter what is used there as far as I can tell - and if I substitue that for a 'real' ContentReference
, it falls over just the same.
This is for a unit test, so the repo will only have the items in that I add.
Maybe the GetDefault<T> is not mocking/creating the necessary properties, but I have found very little information on how to write unit tests for Episerver, let alone what needs mocking as far as the repo is concerned.
Think this may help: https://www.meadow.se/wordpress/unit-testing-an-episerver-contentarea/
I am trying to write some unit tests, which require a block/page to have some items added to a ContentArea, which I need to do in the code.
However, when I run the following code - it throws an error.
var page = repo.GetDefault<MyPageType>(ContentReference.EmptyReference);
var myContentArea = new ContentArea();
var cai = new ContentAreaItem{
ContentGuid = Guid.NewGuid(),
ContentLink = new ContentReference(123)
};
myContentArea.Items.Add(cai); // <-- throws error here complaining about object ref not set.
page.TheContentArea = myContentArea;
// ..
et
chow can I add items to a ContentArea in the code.
thanks