0
votes

I have written down trigger in Salesforce APEX . It is working properly.

Code For Trigger is:

trigger SDRDemoUpdate_test on Event (before update) {
    Map<ID,Event> records = New Map<ID,Event>([SELECT CreatedBy.Name FROM Event WHERE ID IN: trigger.new]);

    for (Event obj :Trigger.new){
        obj.SDR_Original_Demo__c = records.get(obj.id).CreatedBy.Name;
    }
}

Now I am trying to write code for its test class. It is giving error on line saying object can not be parsed to String.

Code For Test Class is:

@isTest
public class originalDemo {
    static testMethod void test_original_demo() {
        Event obj = new Event();
        obj.CreatedBy = 'Tom';
        obj.Owner = 'Jack';
        obj.What = 'Opportunity';

        insert.obj;

        userInfo.getName();
    }
}

Looking forward to find out the solution. Any help would be appreciated.

Thanks

1

1 Answers

0
votes

Your issue in these lines

    obj.CreatedBy = 'Tom';
    obj.Owner = 'Jack';
    obj.What = 'Opportunity';

You tried to pass String to fields which required Id.

    User user = [SELECT Id FROM User LIMIT 1];
    obj.CreatedById = UserInfo.getUserId();
    obj.OwnerId = user.Id;
    obj.WhatId = opportunity.Id;