Test WaveTemplateConfigurationModifier

Test the WaveTemplateConfigurationModifier before deploying a template that uses it.

Before you can deploy your template or package it for the Salesforce AppExchange that uses a WaveTemplateConfigurationModifier class, a unit test class must be present and all of the tests must complete successfully. The unit test is designed to call and run the modifier methods and nothing more. Use the following examples when creating your own unit test class.

Use the wavetemplate.Test helper methods for testing.

  • wavetemplate.Test.getWaveTemplateInfoForApexTesting. Retrieves the runtime template information object for testing. Requires templateName:

    1getWaveTemplateInfoForApexTesting(String templateName)
  • wavetemplate.Test.getDefaultAnswersForApexTesting. Retrieves the variable answers set by user selections and/or the configuration modifier methods. Requires templateName:

    1getDefaultAnswersForApexTesting(String templateName)

The following code examples show how to test the methods from the Apex Examples page.

Example 

Generic Test Class Example

1@isTest
2private class ExampleWaveTemplateConfigurationModifierTest
3{
4    @isTest
5    static testMethod void testModifier()
6    {
7        // Test modifier methods
8    }
9}

Example 

beforeAppCreate Test Method Example

1@isTest static testMethod void testBeforeAppCreate()
2{
3    wavetemplate.WaveTemplateInfo template =
4            wavetemplate.Test.getWaveTemplateInfoForApexTesting('my_template');
5    wavetemplate.Answers answers =
6            wavetemplate.Test.getDefaultAnswersForApexTesting('my_template');
7
8    ExampleWaveTemplateConfigurationModifier mod =
9        new ExampleWaveTemplateConfigurationModifier();
10
11    //Test the beforeAppCreate method in your Apex Modifier Class
12    System.assertEquals('Yes', answers.get(Has_Product));
13    mod.beforeAppCreate(template, answers);
14    System.assertEquals('No', answers.get(Has_Product));
15}

Example 

beforeAppUpdate Test Method Example

1@isTest static testMethod void testBeforeAppUpdate()
2{
3    wavetemplate.WaveTemplateInfo template =
4            wavetemplate.Test.getWaveTemplateInfoForApexTesting('my_template');
5    wavetemplate.Answers answers =
6            wavetemplate.Test.getDefaultAnswersForApexTesting('my_template');
7
8    ExampleWaveTemplateConfigurationModifier mod =
9        new ExampleWaveTemplateConfigurationModifier();
10
11    //Test the beforeAppUpdate method in your Apex Modifier Class
12    System.assertEquals('No', answers.get(Has_Product));
13    mod.beforeAppUpdate(template, '2.0', answers);
14    System.assertEquals('Yes', answers.get(Has_Product));
15}

Example 

onConfigurationRetrieval Test Method Example

1@isTest static testMethod void testOnConfig()
2{
3    wavetemplate.WaveTemplateInfo template =
4            wavetemplate.Test.getWaveTemplateInfoForApexTesting('my_template');
5
6    ExampleWaveTemplateConfigurationModifier mod =
7        new ExampleWaveTemplateConfigurationModifier();
8
9    //Test the onConfigurationRetrieval method in your Apex Modifier Class
10    mod.onConfigurationRetrieval(template);
11    System.assertEquals('No',
12        template.getVariables().get('Has_Product').getComputedValue());
13}

For complete information, see Testing Apex.