You need to sign in to do that
Don't have an account?
Delete record having ContentPost chatter raises obscure exception
private static testmethod void UnitTest_DeleteOpportunity()
{
// create an Account
Account testAccount = new Account() ;
testAccount.Name = 'Alpha Corporation' ;
insert testAccount ;
// create an Opportunity on that Account
Opportunity testOpportunity = new Opportunity() ;
testOpportunity.AccountId = testAccount.Id ;
testOpportunity.Name = 'Alpha Holdings PLC' ;
testOpportunity.StageName = 'Negotiation/Review' ;
testOpportunity.CloseDate = Date.Today() ;
insert testOpportunity ;
// create a ContentVersion
ContentVersion testContentVersion = new ContentVersion() ;
testContentVersion.Title = 'Test Document' ;
testContentVersion.PathOnClient = 'Test Document.docx' ;
testContentVersion.VersionData = Blob.ValueOf( 'Test Document Version' ) ;
testContentVersion.Origin = 'H' ;
insert testContentVersion ;
// add that ContentVersion as a FeedItem to the Opportunity
FeedItem testFeedItem = new FeedItem() ;
testFeedItem.ParentID = testOpportunity.Id ;
testFeedItem.RelatedRecordID = testContentVersion.Id ;
testFeedItem.Type = 'ContentPost' ;
insert testFeedItem ;
// test: delete the Opportunity raises an exception
String expectedStart = 'Delete failed. First exception on row 0 with id ' ;
String expectedEnd = '; first error: DUPLICATE_VALUE, duplicate value found: <unknown> duplicates value on record with id: <unknown>: []' ;
String actual = '' ;
try
{
delete testOpportunity ;
}
catch ( Exception e )
{
actual = e.GetMessage() ;
}
System.AssertEquals( true, actual.StartsWith( expectedStart ) ) ;
System.AssertEquals( true, actual.EndsWith( expectedEnd ) ) ;
}
Can anybody explain why this exception is being raised?