Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
### 1.12.3 - 22 December 2023
* Add initializer based on an existing instance, letting us copy an already initialized XrmMockup instance (@mkholt)
* Add optional tracing class factory to settings (@mkholt)
* Add timers during initialization (@mkholt)

### 1.12.2 - 24 August 2023
* Add flag to mitigate duplicate security role names (@mkholt)

Expand Down
8 changes: 4 additions & 4 deletions src/MetadataGen/MetadataGenerator11/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
8 changes: 4 additions & 4 deletions src/MetadataGen/MetadataGenerator13/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
8 changes: 4 additions & 4 deletions src/MetadataGen/MetadataGenerator15/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
8 changes: 4 additions & 4 deletions src/MetadataGen/MetadataGenerator16/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
8 changes: 4 additions & 4 deletions src/MetadataGen/MetadataGenerator365/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
8 changes: 4 additions & 4 deletions src/XrmMockup2011/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
20 changes: 17 additions & 3 deletions src/XrmMockup2011/XrmMockup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ public class XrmMockup2011 : XrmMockupBase {
private static Dictionary<XrmMockupSettings, XrmMockup2011> instances = new Dictionary<XrmMockupSettings, XrmMockup2011>();


private XrmMockup2011(XrmMockupSettings Settings)
: base(Settings) {
private XrmMockup2011(XrmMockupSettings Settings, MetadataSkeleton metadata = null, List<Entity> workflows = null, List<SecurityRole> securityRoles = null) :
base(Settings, metadata, workflows, securityRoles)
{
}

/// <summary>
/// Gets an instance of XrmMockup2011
/// </summary>
Expand All @@ -42,6 +43,19 @@ public static XrmMockup2011 GetInstance(XrmMockupSettings Settings) {
instances[Settings] = instance;
return instance;
}

/// <summary>
/// Gets an instance of XrmMockup2011 using the same metadata as the provided
/// </summary>
/// <param name="xrmMockup">The existing instance to copy</param>
/// <param name="settings">
/// If provided, will override the settings from the existing instance.<br/>
/// <em>NOTE: Changing <see cref="XrmMockupSettings.MetadataDirectoryPath"/> will not trigger a reload</em>
/// </param>
public static XrmMockup2011 GetInstance(XrmMockup2011 xrmMockup, XrmMockupSettings settings = null)
{
return new XrmMockup2011(settings ?? xrmMockup.Settings, xrmMockup.Metadata, xrmMockup.Workflows, xrmMockup.SecurityRoles);
}
}

}
8 changes: 4 additions & 4 deletions src/XrmMockup2013/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
20 changes: 17 additions & 3 deletions src/XrmMockup2013/XrmMockup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@ public class XrmMockup2013 : XrmMockupBase {
private static Dictionary<XrmMockupSettings, XrmMockup2013> instances = new Dictionary<XrmMockupSettings, XrmMockup2013>();


private XrmMockup2013(XrmMockupSettings Settings) :
base(Settings) {
private XrmMockup2013(XrmMockupSettings Settings, MetadataSkeleton metadata = null, List<Entity> workflows = null, List<SecurityRole> securityRoles = null) :
base(Settings, metadata, workflows, securityRoles)
{
}

/// <summary>
/// Gets an instance of XrmMockup2013
/// </summary>
Expand All @@ -36,5 +37,18 @@ public static XrmMockup2013 GetInstance(XrmMockupSettings Settings) {
instances[Settings] = instance;
return instance;
}

/// <summary>
/// Gets an instance of XrmMockup2013 using the same metadata as the provided
/// </summary>
/// <param name="xrmMockup">The existing instance to copy</param>
/// <param name="settings">
/// If provided, will override the settings from the existing instance.<br/>
/// <em>NOTE: Changing <see cref="XrmMockupSettings.MetadataDirectoryPath"/> will not trigger a reload</em>
/// </param>
public static XrmMockup2013 GetInstance(XrmMockup2013 xrmMockup, XrmMockupSettings settings = null)
{
return new XrmMockup2013(settings ?? xrmMockup.Settings, xrmMockup.Metadata, xrmMockup.Workflows, xrmMockup.SecurityRoles);
}
}
}
8 changes: 4 additions & 4 deletions src/XrmMockup2015/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
22 changes: 18 additions & 4 deletions src/XrmMockup2015/XrmMockup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@ namespace DG.Tools.XrmMockup {
/// </summary>
public class XrmMockup2015 : XrmMockupBase {

private static Dictionary<XrmMockupSettings, XrmMockup2015> instances = new Dictionary<XrmMockupSettings, XrmMockup2015>();
private static readonly Dictionary<XrmMockupSettings, XrmMockup2015> instances = new Dictionary<XrmMockupSettings, XrmMockup2015>();


private XrmMockup2015(XrmMockupSettings Settings) :
base(Settings) {
private XrmMockup2015(XrmMockupSettings Settings, MetadataSkeleton metadata = null, List<Entity> workflows = null, List<SecurityRole> securityRoles = null) :
base(Settings, metadata, workflows, securityRoles)
{
}

/// <summary>
/// Gets an instance of XrmMockup2015
/// </summary>
Expand All @@ -36,5 +37,18 @@ public static XrmMockup2015 GetInstance(XrmMockupSettings Settings) {
instances[Settings] = instance;
return instance;
}

/// <summary>
/// Gets an instance of XrmMockup2015 using the same metadata as the provided
/// </summary>
/// <param name="xrmMockup">The existing instance to copy</param>
/// <param name="settings">
/// If provided, will override the settings from the existing instance.<br/>
/// <em>NOTE: Changing <see cref="XrmMockupSettings.MetadataDirectoryPath"/> will not trigger a reload</em>
/// </param>
public static XrmMockup2015 GetInstance(XrmMockup2015 xrmMockup, XrmMockupSettings settings = null)
{
return new XrmMockup2015(settings ?? xrmMockup.Settings, xrmMockup.Metadata, xrmMockup.Workflows, xrmMockup.SecurityRoles);
}
}
}
8 changes: 4 additions & 4 deletions src/XrmMockup2016/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
26 changes: 21 additions & 5 deletions src/XrmMockup2016/XrmMockup.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using Microsoft.Xrm.Sdk;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("XrmMockup16Test")]
Expand All @@ -12,10 +13,12 @@ public class XrmMockup2016 : XrmMockupBase {
private static Dictionary<XrmMockupSettings, XrmMockup2016> instances = new Dictionary<XrmMockupSettings, XrmMockup2016>();


private XrmMockup2016(XrmMockupSettings Settings) :
base(Settings) {}
private XrmMockup2016(XrmMockupSettings Settings, MetadataSkeleton metadata = null, List<Entity> workflows = null, List<SecurityRole> securityRoles = null) :
base(Settings, metadata, workflows, securityRoles)
{
}



/// <summary>
/// Gets an instance of XrmMockup2016
/// </summary>
Expand All @@ -28,5 +31,18 @@ public static XrmMockup2016 GetInstance(XrmMockupSettings Settings) {
instances[Settings] = instance;
return instance;
}
}

/// <summary>
/// Gets an instance of XrmMockup2016 using the same metadata as the provided
/// </summary>
/// <param name="xrmMockup">The existing instance to copy</param>
/// <param name="settings">
/// If provided, will override the settings from the existing instance.<br/>
/// <em>NOTE: Changing <see cref="XrmMockupSettings.MetadataDirectoryPath"/> will not trigger a reload</em>
/// </param>
public static XrmMockup2016 GetInstance(XrmMockup2016 xrmMockup, XrmMockupSettings settings = null)
{
return new XrmMockup2016(settings ?? xrmMockup.Settings, xrmMockup.Metadata, xrmMockup.Workflows, xrmMockup.SecurityRoles);
}
}
}
8 changes: 4 additions & 4 deletions src/XrmMockup365/AssemblyInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ using System.Reflection;
[assembly: AssemblyDescription("A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.")]
[assembly: AssemblyCompany("Delegate A/S")]
[assembly: AssemblyCopyright("Copyright (c) Delegate A/S 2017")]
[assembly: AssemblyVersion("1.12.2")]
[assembly: AssemblyFileVersion("1.12.2")]
[assembly: AssemblyVersion("1.12.3")]
[assembly: AssemblyFileVersion("1.12.3")]
namespace System {
internal static class AssemblyVersionInformation {
internal const System.String AssemblyTitle = "XrmMockup";
internal const System.String AssemblyProduct = "XrmMockup";
internal const System.String AssemblyDescription = "A simulation engine that can mock a specific MS CRM instance. Useful for testing and debugging business logic.";
internal const System.String AssemblyCompany = "Delegate A/S";
internal const System.String AssemblyCopyright = "Copyright (c) Delegate A/S 2017";
internal const System.String AssemblyVersion = "1.12.2";
internal const System.String AssemblyFileVersion = "1.12.2";
internal const System.String AssemblyVersion = "1.12.3";
internal const System.String AssemblyFileVersion = "1.12.3";
}
}
Loading