Skip to main content
trigger Setpricebookentry1 on Product2 (after insert) 

{

    Set<ID> prodIdSet = Trigger.newMap.keySet();

    list<Pricebookentry> listpbe=new list<Pricebookentry>();

    Pricebook2 prbook=[select id from Pricebook2 where isStandard=true and isActive=true];

         system.debug('++++++>'+prbook);

        for(Product2 po:Trigger.New)

        {

            system.debug('=====>'+trigger.new);

            Pricebookentry pbe=new Pricebookentry();

            pbe.UnitPrice=10;

            pbe.Pricebook2Id=prbook.id;

            pbe.Product2Id=po.id;

            listpbe.add(pbe);

        }

        if(listpbe.size()>0)

        {

            insert listpbe;

            system.debug('------>'+listpbe);

        }

}   

this is my test code

@istest

public class TestSetpricebookentry1 

{

    @istest

    public static void mytest()

    {

        Product2 po=new Product2();

        po.Name='Raghav';

        po.IsActive=true;

        insert po;

        Id pricebookId = Test.getStandardPricebookId();

        PricebookEntry standardPrice = new PricebookEntry();

        standardPrice.Pricebook2Id = pricebookId; 

        standardPrice.Product2Id =po.Id;

        standardPrice.UnitPrice = 10000; 

        standardPrice.IsActive = true;

        insert standardPrice;

    }

}
2 answers
  1. Apr 23, 2018, 5:51 AM
    Hi Raghav Chaturvedi,

    Issue is coming because of below code in your Trigger.

    Pricebook2 prbook=[select id from Pricebook2 where isStandard=true and isActive=true];

    You need to create Pricebook2 record in your test class. Dnt use SeeAllData = true in your test class.

    Update your code like below

    @istest

    public class TestSetpricebookentry1

    {

    @istest

    public static void mytest()

    {

    Id pricebookId = Test.getStandardPricebookId();

    Pricebook2 customPB = new Pricebook2(id=pricebookId , isActive=true);

    update customPB ;

    Product2 po=new Product2();

    po.Name='Raghav';

    po.IsActive=true;

    insert po;

    }

    }

    Let us know if this will help you

     
0/9000