Wie erstellen Sie eine Entität und verknüpfen Sie eine andere Entität damit in FakeXrmEasy?Erstellen von verknüpften Daten mit fexexrmeasy
ich diesen Code zu testen, bin versucht:
public List<abc_OrderTask> GetTasks(Guid workOrderGuid)
{
var result = (from task in _xrmServiceContext.abc_OrderTaskSet
join workOrder in _xrmServiceContext.abc_workorderSet
on task.RegardingObjectId.Id equals workOrder.Id
where workOrder.Id == workOrderGuid
select task).ToList();
return result;
}
Beziehung zwischen abc_OrderTask und abc_WorkOrder ist N: 1
In meinem Test, ich bin versucht, die beiden Entitäten zu verknüpfen:
[Test]
public void GetTasks_WorkOrderWithExistingTasks_ReturnsListOfTasks()
{
using (var xrmServiceContext = new XrmServiceContext(_fakeOrganizationService))
{
var workOrderGuid = Guid.NewGuid();
var taskGuid = Guid.NewGuid();
var workOrder = new abc_workorder { Id = workOrderGuid };
var task = new abc_OrderTask
{
Id = taskGuid,
Subject = "Required subject",
RegardingObjectId =
new EntityReference(abc_workorder.EntityLogicalName, workOrderGuid)
};
_fakeContext.Initialize(new List<Entity> { workOrder, task });
var sut = new WorkOrderService(xrmServiceContext);
// Act
// Assert
Assert.That(sut.GetTasks(workOrderGuid), Is.InstanceOf<List<abc_OrderTask>>());
Assert.That(sut.GetTasks(workOrderGuid).Count.Equals(1));
}
}
Die Ergebnismenge ist jedoch leer.
Wie erstellt man in FakeXrmEasy eine Entität und verknüpft eine andere Entität damit?
Hier ist, wie diese Aufgabe neu-ed up wird immer:
private IOrganizationService _fakeOrganizationService;
[SetUp]
public void Init()
{
_fakeContext = new XrmFakedContext { ProxyTypesAssembly = Assembly.GetAssembly(typeof(abc_workorder)) };
_fakeOrganizationService = _fakeContext.GetFakedOrganizationService();
}
Wo ist '_fakeContext' kommen? Wie ist es mit '_fakeOrganizationService' verbunden? Ich würde den Code hinzufügen, wo Sie diese einrichten. Ich habe einige Beispiele unter https://github.com/nicknow/BloggingCrm-Dynamics-Crm-Plugin-Unit-Testing-Example/blob/master/BloggingCrm.Account.BusinessLogic.Tests/Prove_that_AccountQueries_Is_Working.cs wie ich FakeXrmEasy benutzt habe Mach diese Art von Tests. – Nicknow
danke @Nicknow Ich habe das zur Frage hinzugefügt –
danke, aber ich war nicht in der Lage, ein hilfreiches Beispiel in Ihrem GitHub zu finden –