Skip to content

Commit a3f7993

Browse files
author
Smiechowski Nathanael
authored
Merge pull request #52 from RHEAGROUP/development
1.1.0
2 parents 46f1207 + 2f5cdd5 commit a3f7993

39 files changed

Lines changed: 3133 additions & 520 deletions

File tree

DEHPMatlab.Tests/DstController/DstControllerTestFixture.cs

Lines changed: 71 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ namespace DEHPMatlab.Tests.DstController
5050
using DEHPCommon.UserInterfaces.Views;
5151

5252
using DEHPMatlab.DstController;
53+
using DEHPMatlab.Services.MappingConfiguration;
5354
using DEHPMatlab.Services.MatlabConnector;
5455
using DEHPMatlab.Services.MatlabParser;
5556
using DEHPMatlab.ViewModel.Row;
@@ -70,6 +71,7 @@ public class DstControllerTestFixture
7071
private Mock<IHubController> hubController;
7172
private Mock<INavigationService> navigationService;
7273
private Mock<IExchangeHistoryService> exchangeHistory;
74+
private Mock<IMappingConfigurationService> mappingConfigurationService;
7375
private IMatlabParser matlabParser;
7476
private Iteration iteration;
7577

@@ -130,8 +132,10 @@ public void Setup()
130132

131133
this.exchangeHistory = new Mock<IExchangeHistoryService>();
132134

135+
this.mappingConfigurationService = new Mock<IMappingConfigurationService>();
136+
133137
this.dstController = new DstController(this.matlabConnector.Object, this.matlabParser, this.statusBar.Object, this.mappingEngine.Object,
134-
this.hubController.Object, this.navigationService.Object, this.exchangeHistory.Object);
138+
this.hubController.Object, this.navigationService.Object, this.exchangeHistory.Object, this.mappingConfigurationService.Object);
135139
}
136140

137141
[Test]
@@ -265,9 +269,9 @@ public void VerifyTransferMappedThingsToHub()
265269
this.navigationService.Setup(
266270
x => x.ShowDxDialog<CreateLogEntryDialog, CreateLogEntryDialogViewModel>(
267271
It.IsAny<CreateLogEntryDialogViewModel>())).Returns(true);
268-
272+
269273
Assert.DoesNotThrowAsync(async () => await this.dstController.TransferMappedThingsToHub());
270-
274+
271275
var parameter = new Parameter
272276
{
273277
ParameterType = new SimpleQuantityKind(),
@@ -352,8 +356,6 @@ public void VerifyTransferMappedThingsToHub()
352356

353357
Assert.DoesNotThrowAsync(async () => await this.dstController.TransferMappedThingsToHub());
354358

355-
Assert.IsNull(variable.SelectedParameter);
356-
Assert.IsNull(variable.SelectedElementDefinition);
357359
Assert.IsEmpty(this.dstController.ParameterVariable);
358360

359361
this.navigationService.Verify(
@@ -409,5 +411,69 @@ public void VerifyTransferFromHubToDst()
409411
Assert.DoesNotThrowAsync(async () => await this.dstController.TransferMappedThingsToDst());
410412
Assert.AreEqual("35", this.dstController.MatlabWorkspaceInputRowViewModels.First(x => x.Name == mappedElement.SelectedMatlabVariable.Name).ActualValue);
411413
}
414+
415+
[Test]
416+
public void VerifyLoadMapping()
417+
{
418+
this.mappingConfigurationService.Setup(
419+
x => x.LoadMappingFromHubToDst(It.IsAny<ReactiveList<MatlabWorkspaceRowViewModel>>()))
420+
.Returns(default(List<ParameterToMatlabVariableMappingRowViewModel>));
421+
422+
this.mappingConfigurationService.Setup(
423+
x => x.LoadMappingFromDstToHub(It.IsAny<ReactiveList<MatlabWorkspaceRowViewModel>>()))
424+
.Returns(default(List<MatlabWorkspaceRowViewModel>));
425+
426+
Assert.DoesNotThrow(() => this.dstController.LoadMapping());
427+
428+
var mappedElementDefinitionRowViewModels = new List<ParameterToMatlabVariableMappingRowViewModel>();
429+
var variableRowViewModels = new List<MatlabWorkspaceRowViewModel>();
430+
431+
this.mappingConfigurationService.Setup(
432+
x => x.LoadMappingFromHubToDst(It.IsAny<ReactiveList<MatlabWorkspaceRowViewModel>>()))
433+
.Returns(mappedElementDefinitionRowViewModels);
434+
435+
this.mappingConfigurationService.Setup(
436+
x => x.LoadMappingFromDstToHub(It.IsAny<ReactiveList<MatlabWorkspaceRowViewModel>>()))
437+
.Returns(variableRowViewModels);
438+
439+
Assert.DoesNotThrow(() => this.dstController.LoadMapping());
440+
441+
mappedElementDefinitionRowViewModels.AddRange(new List<ParameterToMatlabVariableMappingRowViewModel>()
442+
{
443+
new (),
444+
new ()
445+
});
446+
447+
MeasurementScale scale = new RatioScale() { Name = "scale", NumberSet = NumberSetKind.REAL_NUMBER_SET };
448+
449+
variableRowViewModels.AddRange(new List<MatlabWorkspaceRowViewModel>()
450+
{
451+
new ("b", 45)
452+
{
453+
Identifier = "b-a",
454+
}
455+
});
456+
457+
Assert.DoesNotThrow(() => this.dstController.LoadMapping());
458+
459+
variableRowViewModels.AddRange(new List<MatlabWorkspaceRowViewModel>()
460+
{
461+
new ("a", 45)
462+
{
463+
Identifier = "a-a",
464+
SelectedParameter = new Parameter(),
465+
SelectedElementDefinition = new ElementDefinition(),
466+
SelectedScale = scale,
467+
SelectedParameterType = new SimpleQuantityKind()
468+
{
469+
DefaultScale = scale,
470+
PossibleScale = { scale },
471+
Name = "SimpleQuantityKind"
472+
}
473+
}
474+
});
475+
476+
Assert.DoesNotThrow(() => this.dstController.LoadMapping());
477+
}
412478
}
413479
}

DEHPMatlab.Tests/MappingRules/MatlabVariableToElementDefinitionRuleTestFixture.cs

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ namespace DEHPMatlab.Tests.MappingRules
4141
using DEHPCommon.HubController.Interfaces;
4242

4343
using DEHPMatlab.MappingRules;
44+
using DEHPMatlab.Services.MappingConfiguration;
4445
using DEHPMatlab.ViewModel.Row;
4546

4647
using Moq;
@@ -64,6 +65,7 @@ public class MatlabVariableToElementDefinitionRuleTestFixture
6465
private RatioScale scale;
6566
private SampledFunctionParameterType scalarParameterType;
6667
private SampledFunctionParameterType dateTimeParameterType;
68+
private Mock<IMappingConfigurationService> mappingConfigurationService;
6769

6870
[SetUp]
6971
public void Setup()
@@ -93,8 +95,11 @@ public void Setup()
9395
this.hubController.Setup(x => x.OpenIteration).Returns(this.iteration);
9496
this.hubController.Setup(x => x.GetSiteDirectory()).Returns(new SiteDirectory());
9597

98+
this.mappingConfigurationService = new Mock<IMappingConfigurationService>();
99+
96100
var containerBuilder = new ContainerBuilder();
97101
containerBuilder.RegisterInstance(this.hubController.Object).As<IHubController>();
102+
containerBuilder.RegisterInstance(this.mappingConfigurationService.Object).As<IMappingConfigurationService>();
98103
AppContainer.Container = containerBuilder.Build();
99104

100105
this.actualFiniteStates = new ActualFiniteStateList()
@@ -319,8 +324,13 @@ public void VerifyUpdateParameter()
319324
}
320325
};
321326

327+
var state = new ActualFiniteState();
328+
var option = new Option();
329+
322330
var parameter2 = new Parameter()
323331
{
332+
IsOptionDependent = true,
333+
StateDependence = new ActualFiniteStateList() {ActualState = { state } },
324334
ParameterType = new TextParameterType(),
325335
ValueSet =
326336
{
@@ -330,7 +340,9 @@ public void VerifyUpdateParameter()
330340
Formula = new ValueArray<string>(new[] { "-", "-" }),
331341
Manual = new ValueArray<string>(new[] { "-", "-" }),
332342
Reference = new ValueArray<string>(new[] { "-", "-" }),
333-
Published = new ValueArray<string>(new[] { "-", "-" })
343+
Published = new ValueArray<string>(new[] { "-", "-" }),
344+
ActualState = state,
345+
ActualOption = option
334346
}
335347
}
336348
};
@@ -340,8 +352,125 @@ public void VerifyUpdateParameter()
340352

341353
Assert.DoesNotThrow(() => this.rule.UpdateValueSet(variableRowViewModel, parameter0));
342354
Assert.DoesNotThrow(() => this.rule.UpdateValueSet(variableRowViewModel, parameter1));
355+
variableRowViewModel.SelectedOption = option;
356+
variableRowViewModel.SelectedActualFiniteState = state;
343357
Assert.DoesNotThrow(() => this.rule.UpdateValueSet(variableRowViewModel, parameter2));
344358
Assert.Throws<NullReferenceException>(() => this.rule.UpdateValueSet(null, null));
345359
}
360+
361+
[Test]
362+
public void VerifyUpdateValueSetSFPT()
363+
{
364+
var sfpt = new SampledFunctionParameterType()
365+
{
366+
Name = "TextXQuantity",
367+
IndependentParameterType =
368+
{
369+
new IndependentParameterTypeAssignment()
370+
{
371+
ParameterType = new SimpleQuantityKind()
372+
{
373+
Name = "IndependentText"
374+
},
375+
MeasurementScale = this.scale
376+
}
377+
},
378+
379+
DependentParameterType =
380+
{
381+
new DependentParameterTypeAssignment()
382+
{
383+
ParameterType = new SimpleQuantityKind()
384+
{
385+
Name = "DependentQuantityKing",
386+
DefaultScale = this.scale,
387+
PossibleScale = { this.scale }
388+
},
389+
MeasurementScale = this.scale
390+
}
391+
}
392+
};
393+
394+
var arrayValue = new object[2, 3];
395+
396+
for (var i = 0; i < arrayValue.GetLength(0); i++)
397+
{
398+
for (var j = 0; j < arrayValue.GetLength(1); j++)
399+
{
400+
arrayValue.SetValue(i + j + 1, i, j);
401+
}
402+
}
403+
404+
var variable = new MatlabWorkspaceRowViewModel("a", arrayValue);
405+
406+
var parameter = new Parameter()
407+
{
408+
Iid = new Guid(),
409+
ParameterType = sfpt,
410+
Container = new ElementDefinition(new Guid(), null, null),
411+
ValueSet = { new ParameterValueSet() }
412+
};
413+
414+
Assert.DoesNotThrow(() => this.rule.UpdateValueSet(variable, parameter));
415+
416+
variable.UnwrapVariableRowViewModels();
417+
variable.SampledFunctionParameterParameterAssignementRows.First().IsDependantParameter = true;
418+
variable.SampledFunctionParameterParameterAssignementRows.Last().IsDependantParameter = false;
419+
Assert.DoesNotThrow(() => this.rule.UpdateValueSet(variable, parameter));
420+
Assert.AreEqual("2", parameter.ValueSet.First().Computed.First());
421+
}
422+
423+
[Test]
424+
public void VerifyMappingArrayParameterType()
425+
{
426+
var arrayParameter = new ArrayParameterType()
427+
{
428+
Name = "Array3x2",
429+
ShortName = "array3x2",
430+
};
431+
432+
arrayParameter.Dimension = new OrderedItemList<int>(arrayParameter) { 3, 2 };
433+
434+
var simpleQuantityKind = new SimpleQuantityKind()
435+
{
436+
Name = "aSimpleQuantity",
437+
PossibleScale = { this.scale },
438+
DefaultScale = this.scale
439+
};
440+
441+
for (var i = 0; i < 6; i++)
442+
{
443+
arrayParameter.Component.Add(new ParameterTypeComponent()
444+
{
445+
ParameterType = simpleQuantityKind,
446+
Scale = this.scale
447+
});
448+
}
449+
450+
var parameter = new Parameter()
451+
{
452+
Iid = new Guid(),
453+
ParameterType = arrayParameter,
454+
Container = new ElementDefinition(new Guid(), null, null),
455+
ValueSet = { new ParameterValueSet() }
456+
};
457+
458+
var arrayValue = new object[3, 2];
459+
460+
for (var i = 0; i < arrayValue.GetLength(0); i++)
461+
{
462+
for (var j = 0; j < arrayValue.GetLength(1); j++)
463+
{
464+
arrayValue.SetValue(i + j + 1, i, j);
465+
}
466+
}
467+
468+
var variable = new MatlabWorkspaceRowViewModel("a", arrayValue);
469+
470+
variable.UnwrapVariableRowViewModels();
471+
Assert.DoesNotThrow(() => this.rule.UpdateValueSet(variable, parameter));
472+
Assert.AreEqual("1", parameter.ValueSet.First().Computed.First());
473+
Assert.AreEqual(6, parameter.ValueSet.First().Computed.Count());
474+
}
346475
}
347476
}

DEHPMatlab.Tests/NetChange/DstNetChangePreviewViewModelTestFixture.cs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public void Setup()
7575
this.hubMapResult = new ReactiveList<ParameterToMatlabVariableMappingRowViewModel>();
7676

7777
this.dstController = new Mock<IDstController>();
78+
this.dstController.Setup(x => x.MatlabAllWorkspaceRowViewModels).Returns(new ReactiveList<MatlabWorkspaceRowViewModel>());
7879
this.dstController.Setup(x => x.MatlabWorkspaceInputRowViewModels).Returns(this.inputVariables);
7980
this.dstController.Setup(x => x.HubMapResult).Returns(this.hubMapResult);
8081
this.dstController.Setup(x => x.SelectedHubMapResultToTransfer).Returns(this.hubMapResult);
@@ -97,8 +98,11 @@ public void VerifyPopulateContextMenu()
9798
[Test]
9899
public void VerifyCDPMessageListening()
99100
{
100-
Assert.DoesNotThrow(() => CDPMessageBus.Current.SendMessage(new UpdateDstPreviewBasedOnSelectionEvent(new List<ElementDefinitionRowViewModel>(), null, false)));
101-
Assert.DoesNotThrow(() => CDPMessageBus.Current.SendMessage(new UpdateDstPreviewBasedOnSelectionEvent(new List<ElementDefinitionRowViewModel>(), null, true)));
101+
Assert.DoesNotThrow(() => CDPMessageBus.Current.SendMessage(
102+
new UpdateDstPreviewBasedOnSelectionEvent(new List<ElementDefinitionRowViewModel>(), null, false)));
103+
104+
Assert.DoesNotThrow(() => CDPMessageBus.Current.SendMessage(
105+
new UpdateDstPreviewBasedOnSelectionEvent(new List<ElementDefinitionRowViewModel>(), null, true)));
102106

103107
var variable = new MatlabWorkspaceRowViewModel("a", 0)
104108
{
@@ -124,7 +128,6 @@ public void VerifyCDPMessageListening()
124128
this.inputVariables.Add(variable);
125129

126130
Assert.DoesNotThrow(() => CDPMessageBus.Current.SendMessage(new UpdateDstVariableTreeEvent(true)));
127-
Assert.IsFalse(this.inputVariables.First().IsSelectedForTransfer);
128131

129132
Assert.DoesNotThrow(() => CDPMessageBus.Current.SendMessage(new UpdateDstVariableTreeEvent()));
130133
Assert.AreEqual("45", this.viewModel.InputVariablesCopy.First().ActualValue);
@@ -159,7 +162,11 @@ public void VerifyInputVariablesObservable()
159162
[Test]
160163
public void VerifySelectedThingsObservable()
161164
{
162-
var variable = new MatlabWorkspaceRowViewModel("a", 45);
165+
var variable = new MatlabWorkspaceRowViewModel("a", 45)
166+
{
167+
Identifier = "a-a"
168+
};
169+
163170
this.viewModel.SelectedThings.Add(variable);
164171

165172
Assert.IsFalse(variable.IsSelectedForTransfer);
@@ -172,10 +179,10 @@ public void VerifySelectedThingsObservable()
172179

173180
this.hubMapResult.Add(new ParameterToMatlabVariableMappingRowViewModel()
174181
{
175-
SelectedMatlabVariable = variable
182+
SelectedMatlabVariable = variable,
183+
SelectedValue = new ValueSetValueRowViewModel(new ParameterValueSet(), "45", null),
176184
});
177185

178-
this.viewModel.SelectedThings.Add(variable);
179186
Assert.IsTrue(variable.IsSelectedForTransfer);
180187
}
181188

@@ -194,8 +201,6 @@ public void VerifyCommands()
194201
this.inputVariables.Add(variable);
195202
Assert.DoesNotThrow(() => this.viewModel.SelectAllCommand.Execute(null));
196203

197-
Assert.IsTrue(variable.IsSelectedForTransfer);
198-
199204
Assert.DoesNotThrow(() => this.viewModel.DeselectAllCommand.Execute(null));
200205
Assert.IsFalse(variable.IsSelectedForTransfer);
201206
}

DEHPMatlab.Tests/NetChange/HubNetChangePreviewViewModelTestFixture.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,19 +322,18 @@ public void VerifyComputeValues()
322322
Assert.AreEqual(1, this.viewModel.Things.Count);
323323
Assert.AreEqual(3, elements.Count);
324324
Assert.DoesNotThrow(() => this.viewModel.ComputeValues());
325-
Assert.AreEqual(4, elements.Count);
325+
Assert.AreEqual(3, elements.Count);
326+
Assert.DoesNotThrow(() => this.viewModel.ComputeValuesWrapper());
326327

327328
var parameterRowViewModels = elements.First(x => x.Thing.Iid == this.elementDefinition0.Iid)
328329
.ContainedRows.OfType<ParameterRowViewModel>();
329330

330-
Assert.AreEqual("42", parameterRowViewModels.First().Value);
331+
Assert.AreEqual("2", parameterRowViewModels.First().Value);
331332

332333
var lastElementParameters = elements.First(x => x.Thing.Iid == this.elementDefinition1.Iid)
333334
.ContainedRows.OfType<ParameterRowViewModel>();
334335

335336
Assert.AreEqual(1, lastElementParameters.Count());
336-
337-
CDPMessageBus.Current.ClearSubscriptions();
338337
}
339338

340339
[Test]

0 commit comments

Comments
 (0)