Tisa.FakeXrm.Core
2025.9.10.1120
dotnet add package Tisa.FakeXrm.Core --version 2025.9.10.1120
NuGet\Install-Package Tisa.FakeXrm.Core -Version 2025.9.10.1120
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tisa.FakeXrm.Core" Version="2025.9.10.1120" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tisa.FakeXrm.Core" Version="2025.9.10.1120" />
<PackageReference Include="Tisa.FakeXrm.Core" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Tisa.FakeXrm.Core --version 2025.9.10.1120
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Tisa.FakeXrm.Core, 2025.9.10.1120"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Tisa.FakeXrm.Core@2025.9.10.1120
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Tisa.FakeXrm.Core&version=2025.9.10.1120
#tool nuget:?package=Tisa.FakeXrm.Core&version=2025.9.10.1120
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Tisa.FakeXrm.Core
Общие классы и компоненты для тестирования плагинов Dynamics CRM с использованием платформы .NET Core и библиотеки FakeXrmEasy.
Описание
Tisa.FakeXrm.Core предоставляет набор инструментов для упрощения написания unit-тестов и интеграционных тестов для плагинов Microsoft Dynamics 365 (CRM). Пакет построен на основе библиотеки FakeXrmEasy и расширяет её функциональность дополнительными вспомогательными классами, исполнителями и расширениями.
Основные возможности
- Базовые классы для тестирования:
XrmAbstractTest,XrmUnitTest,XrmIntegrationTest - Исполнители запросов: Поддержка различных операций CRM (SetState, Assign, ExecuteMultiple, работа с временными зонами)
- Расширения контекста: Удобные методы для работы с
IXrmFakedContextиXrmFakedPluginExecutionContext - Сериализация контекста: Десериализация контекста выполнения плагина из XML
- Работа с общими переменными: Управление общими параметрами контекста выполнения
Установка
dotnet add package Tisa.FakeXrm.Core
Требования
- .NET 8.0, .NET 9.0 или .NET 10.0
- FakeXrmEasy (включается автоматически как зависимость)
Быстрый старт
Unit-тестирование плагина
using Tisa.FakeXrm.Core.Primitives;
using Microsoft.Xrm.Sdk;
using FakeXrmEasy.Plugins;
public class MyPluginTest : XrmUnitTest
{
[Fact]
public void TestPluginExecution()
{
// Создание тестовых данных
var account = new Entity("account")
{
Id = Guid.NewGuid(),
["name"] = "Test Account"
};
Context.Initialize(account);
// Создание контекста выполнения плагина
var pluginContext = CreateXrmFakedPluginExecutionContext(
messageName: "Create",
stepStage: ProcessingStepStage.Postoperation
);
pluginContext.InputParameters["Target"] = account;
// Выполнение плагина
ExecutePlugin<MyPlugin>(pluginContext);
// Проверка результатов
var updatedAccount = Context.GetEntityById("account", account.Id);
Assert.NotNull(updatedAccount);
}
}
Интеграционное тестирование
using Tisa.FakeXrm.Core.Primitives;
public class MyIntegrationTest : XrmIntegrationTest
{
public MyIntegrationTest() : base("MSCRM")
{
// Конструктор автоматически подключается к CRM
// используя строку подключения из appsettings.json
}
[Fact]
public void TestWithRealCrm()
{
var account = new Entity("account")
{
["name"] = "Integration Test Account"
};
var accountId = OrganizationService.Create(account);
Assert.NotEqual(Guid.Empty, accountId);
}
}
Работа с контекстом
// Инициализация контекста из XML
var xmlEntities = @"<ArrayOfEntity>...</ArrayOfEntity>";
Context.Init(xmlEntities);
// Добавление сущностей с проверкой уникальности
var entity = new Entity("contact") { Id = Guid.NewGuid() };
Context.AppendEntitiy(entity);
// Работа с общими переменными
Context.SetCommonVariable(pluginContext, "MyVariable", "MyValue");
var value = Context.GetCommonVariable(pluginContext, "MyVariable");
Десериализация контекста плагина
var pluginContextXml = @"<PluginExecutionContext>...</PluginExecutionContext>";
var pluginContext = DeserializePluginExecutionContext(pluginContextXml);
ExecutePlugin<MyPlugin>(pluginContext);
Основные компоненты
Primitives
- XrmAbstractTest: Базовый абстрактный класс для тестов с общими методами создания и десериализации контекста
- XrmUnitTest: Класс для unit-тестов с использованием FakeXrmEasy
- XrmIntegrationTest: Класс для интеграционных тестов с реальным подключением к CRM
Executors
- FakeSetStateExecutor: Исполнитель для запросов SetState
- FakeAssignExecutor: Исполнитель для запросов Assign
- FakeExecuteMultipleExecutor: Исполнитель для запросов ExecuteMultiple
- FakeLocalTimeFromUtcTimeExecutor: Исполнитель для конвертации времени из UTC в локальное
- FakeUtcTimeFromLocalTimeExecutor: Исполнитель для конвертации времени из локального в UTC
Extensions
- XrmFakedContextHelper: Расширения для работы с контекстом FakeXrmEasy
- XrmFakedPluginExecutionContextHelper: Расширения для работы с контекстом выполнения плагина
- GuidExtension: Расширения для работы с Guid
Helpers
- PluginExecutionContextExtensions: Методы расширения для преобразования контекста плагина
- Serializer: Класс для сериализации и десериализации данных
Лицензия
Copyright © 2025 ТИСА. Все права защищены.
Контакты
- Веб-сайт: http://oootisa.ru
- Email: tisa@oootisa.ru
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- FakeXrmEasy.Abstractions.v9 (>= 3.8.0)
- FakeXrmEasy.Core.v9 (>= 3.8.0)
- FakeXrmEasy.Integration.v9 (>= 3.6.0)
- FakeXrmEasy.Messages.v9 (>= 3.8.0)
- FakeXrmEasy.Plugins.v9 (>= 3.8.1)
- Microsoft.Extensions.Configuration.Json (>= 9.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Tisa.XrmCore (>= 2025.9.10.1120)
-
net8.0
- FakeXrmEasy.Abstractions.v9 (>= 3.8.0)
- FakeXrmEasy.Core.v9 (>= 3.8.0)
- FakeXrmEasy.Integration.v9 (>= 3.6.0)
- FakeXrmEasy.Messages.v9 (>= 3.8.0)
- FakeXrmEasy.Plugins.v9 (>= 3.8.1)
- Microsoft.Extensions.Configuration.Json (>= 9.0.10)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Tisa.XrmCore (>= 2025.9.10.1120)
-
net9.0
- FakeXrmEasy.Abstractions.v9 (>= 3.8.0)
- FakeXrmEasy.Core.v9 (>= 3.8.0)
- FakeXrmEasy.Integration.v9 (>= 3.6.0)
- FakeXrmEasy.Messages.v9 (>= 3.8.0)
- FakeXrmEasy.Plugins.v9 (>= 3.8.1)
- Microsoft.Extensions.Configuration.Json (>= 9.0.10)
- Microsoft.Extensions.DependencyInjection (>= 9.0.0)
- Tisa.XrmCore (>= 2025.9.10.1120)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 2025.9.10.1120 | 318 | 11/17/2025 | |
| 2025.9.9.1115 | 229 | 11/14/2025 | |
| 2025.9.9.1111 | 265 | 11/12/2025 | |
| 2025.9.9.1105 | 150 | 10/31/2025 | |
| 2025.9.9.1101 | 242 | 10/28/2025 |