Skip to content

Tutorial 2

PhuocLe edited this page Aug 24, 2018 · 13 revisions

Task

Create Unit Test project for plugin: Paz.LuckeyMonkey.Plugin.Lead

Prerequisites

Coding

  1. Add New Project 9. C# ProxyTypes Project to your solution
    • A popup form Add new Proxy Types Project opened
    • Click button >< to create/select a Dynamics 365 connection
    • After connected, click OK
    • PL.DynamicsCrm.DevKit created project name: Paz.LuckeyMonkey.ProxyTypes
  2. Rebuild solution to restore NuGet packages
  3. Execute File run.bat of Paz.LuckeyMonkey.ProxyTypes project, waiting CrmSvcUtil generate code to GeneratedCode.cs file.
  4. Rebuild solution without errors
  5. Add New Project 6. C# Test Project to your solution
    • A popup form Add new Test Project opened
    • Dropdown list all available projects test
    • Select Paz.LuckeyMonkey.Plugin.Lead
    • Click OK
    • PL.DynamicsCrm.DevKit created test project name: Paz.LuckeyMonkey.Plugin.Lead.Test
  6. Rebuild solution to restore NuGet packages
  7. Add New Item 5. C# Test Class to Paz.LuckeyMonkey.Plugin.Lead.Test project
    • A popup form Add new Test CLass opened
    • Dropdown list all available test class
    • Select PreLeadCreateSynchronous
    • Click OK
    • PL.DynamicsCrm.DevKit created test class: PreLeadCreateSynchronousTest
  8. Rebuild solution without errors
  9. Open Test Explorer window and Run All tests.
    • 4 passed tests.
    • 1 failed test.
  10. Edit failed test
[TestMethod]
public void PreLeadCreate_LeadSubjectAlwaysUppercase()
{
    //setup
    Context.ProxyTypesAssembly = Assembly.GetAssembly(typeof(ProxyTypesAssembly));
    Context.Data.Clear();
    var subject = "lowcase subject";
    var target = new Entity("lead")
    {
        ["leadid"] = Guid.NewGuid(),
        ["subject"] = subject
    };
    PluginContext.InputParameters["Target"] = target;

    //run
    Context.ExecutePluginWithConfigurations<PreLeadCreateSynchronous>(PluginContext, null, null);

    //result
    var resultTarget = (Entity)PluginContext.InputParameters["Target"];
    var lead = new Shared.Entities.Lead(resultTarget);
    Assert.AreEqual(subject.ToUpper(), lead.Subject, false);
}
  1. Run All tests again
    • 5 passed tests
  2. Check-in all files to your source control
  3. You finished this tutorial

Summary

This tutorial, you know howto

Clone this wiki locally