Tell me more ×
Salesforce Stack Exchange is a question and answer site for Salesforce administrators, implementation experts, developers and anybody in-between. It's 100% free, no registration required.

I got this error when i save my test class:

Error: Compile Error: Constructor not defined: [ApexPages.StandardController].<Constructor>() 

CLASS:

public class ContentVersionAlt {
private List<ContentVersion> ContentVersions;
public string host{get;set;}

    public ContentVersionAlt(ApexPages.StandardController controller) {
           host=URL.getSalesforceBaseUrl().toExternalForm();
    }


    public List<ContentVersion> getContentVersions() {

    ContentVersions= [Select c.id ,c.Software_Download__c,c.title,c.description,c.FileType From ContentVersion c where c.Software_Download__c=:System.currentPagereference().getParameters().get('id')];
        return ContentVersions;
    }

}

TEST CLASS:

@istest
private class ContentVersionAltTest {
 static testMethod void ContentVersionsTest(){

          PageReference pageRef = Page.SoftwareDownloadFiles;
          Test.setCurrentPageReference(pageRef);

        ApexPages.StandardController sc = new ApexPages.standardController();
        //create an instance of the controller
        ContentVersionAlt myPageCon = new ContentVersionAlt(sc);
        myPageCon.getContentVersions();       

         ContentVersion testContentInsert =new ContentVersion(); 
         testContentInsert.ContentURL='http://www.google.com/'; 
         testContentInsert.Title ='Google.com'; 

         insert testContentInsert;   


         ContentVersion testContent = [SELECT ContentDocumentId FROM ContentVersion where Id = :testContentInsert.Id]; 

         ContentWorkspace testWorkspace = [SELECT Id FROM ContentWorkspace WHERE Name='Opportunity Documents ']; 
         ContentWorkspaceDoc newWorkspaceDoc =new ContentWorkspaceDoc(); 
         newWorkspaceDoc.ContentWorkspaceId = testWorkspace.Id; 
         newWorkspaceDoc.ContentDocumentId = testContent.ContentDocumentId; 
         insert newWorkspaceDoc;

         update testContent; 



 }

}

How can i solve this?

share|improve this question

1 Answer

up vote 3 down vote accepted

The constructor for ApexPages.StandardController takes an SObject as its argument as in:

ApexPages.StandardController sc = new ApexPages.standardController(testContentInsert);

You will need to create the empty ContentVersion SObject (if testing an insert use case) or insert the ContentVersion SObject (if testing an update use case) before instantiating the StandardController. If you want to do both use cases in the same testmethod, you will need to instantiate different StandardController instances

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.