EPLAN_PROD_Plugin/Sinvo.EplanHpD.Plugin.Test/CheckTest.cs

245 lines
9.4 KiB
C#
Raw Normal View History

2024-10-26 14:40:28 +08:00
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Sinvo.EplanHpD.Plugin.WPFUI.Models;
using Sinvo.EplanHpD.Plugin.WPFUI.ViewModel;
using System.Collections.Generic;
namespace Sinvo.EplanHpD.Plugin.Test
{
[TestClass]
public class CheckTest
{
[TestMethod]
public void CheckAllTest()
{
var vm = new MainViewModel();
vm.CheckAll(new List<StuffedDataModel>
{
new StuffedDataModel
{
CheckedMsg= null,
CrossSection= "1.5",
DiscolorationDesc= "V-1.5-CE(褐色)/定制",
ErrorCount= 0,
FrontStripLength= "5.2 mm",
FrontTerminalMaterialCode= "42020100000382",
FrontTerminalModel= "C45-1.5-CE定制",
Imprint= "L1CP528",
Insulation= new InsulationModel(),
IsChecked= false,
IsError= false,
IsIgnore= false,
Model= "RV-BK-1x1.5-1224-16×N2-L1CP528",
NumberTubeContent= null,
NumberTubeMaterialNo= null,
NumberTubeSpec= null,
Quantity= 1,
RearStripLength= "8 mm",
RearTerminalMaterialCode= "42020100000427",
RearTerminalModel= "SNB2-4-CE定制",
WireCode= "42020100000188",
WireColor= "BK",
WireLength= "1224",
WireModel= "黑色RV1.5/定制",
WireName= "w_00931",
WireNumber= "L1CP528",
},
new StuffedDataModel
{
CheckedMsg= null,
CrossSection= "1.5",
DiscolorationDesc= "V-1.5-CE(褐色)/定制",
ErrorCount= 0,
FrontStripLength= "5.2 mm",
FrontTerminalMaterialCode= "42020100000382",
FrontTerminalModel= "C45-1.5-CE定制",
Imprint= "L1CP528",
Insulation= new InsulationModel(),
IsChecked= false,
IsError= false,
IsIgnore= false,
Model= "RV-BK-1x1.5-1224-16×N2-L1CP528",
NumberTubeContent= null,
NumberTubeMaterialNo= null,
NumberTubeSpec= null,
Quantity= 1,
RearStripLength= "8 mm",
RearTerminalMaterialCode= "42020100000427",
RearTerminalModel= "SNB2-4-CE定制",
WireCode= "42020100000188",
WireColor= "BK",
WireLength= "1224",
WireModel= "黑色RV1.5/定制",
WireName= "w_00931",
WireNumber= "L1CP528",
}
});
}
[TestMethod("检查包括D-PE的线")]
2024-10-26 14:40:28 +08:00
public void CheckAllWithDPETest()
{
var vm = new MainViewModel();
vm.CheckAll(new List<StuffedDataModel>
{
new StuffedDataModel
{
CheckedMsg= null,
CrossSection= "1.5",
DiscolorationDesc= "V-1.5-CE(褐色)/定制",
ErrorCount= 0,
FrontStripLength= "5.2 mm",
FrontTerminalMaterialCode= "42020100000382",
FrontTerminalModel= "C45-1.5-CE定制",
Imprint= "D-PECP528",
2024-10-28 14:29:56 +08:00
Insulation= new InsulationModel()
{
Specification = "V-1.5-CE(褐色)/定制",
},
2024-10-26 14:40:28 +08:00
IsChecked= false,
IsError= false,
IsIgnore= false,
Model= "RV-BK-1x1.5-1224-16×N2-L1CP528",
NumberTubeContent= null,
NumberTubeMaterialNo= null,
NumberTubeSpec= null,
Quantity= 1,
RearStripLength= "8 mm",
RearTerminalMaterialCode= "42020100000427",
RearTerminalModel= "SNB2-4-CE定制",
WireCode= "42020100000188",
WireColor= "BK",
WireLength= "1224",
WireModel= "黑色RV1.5/定制",
WireName= "w_00931",
WireNumber= "L1CP528",
},
new StuffedDataModel
{
CheckedMsg= null,
CrossSection= "1.5",
DiscolorationDesc= "V-1.5-CE(褐色)/定制",
ErrorCount= 0,
FrontStripLength= "5.2 mm",
FrontTerminalMaterialCode= "42020100000382",
FrontTerminalModel= "C45-1.5-CE定制",
Imprint= "D-PECP528",
Insulation= new InsulationModel(),
IsChecked= false,
IsError= false,
IsIgnore= false,
Model= "RV-BK-1x1.5-1224-16×N2-L1CP528",
NumberTubeContent= null,
NumberTubeMaterialNo= null,
NumberTubeSpec= null,
Quantity= 1,
RearStripLength= "8 mm",
RearTerminalMaterialCode= "42020100000427",
RearTerminalModel= "SNB2-4-CE定制",
WireCode= "42020100000188",
WireColor= "BK",
WireLength= "1224",
WireModel= "黑色RV1.5/定制",
WireName= "w_00931",
WireNumber= "L1CP528",
}
});
}
[TestMethod]
public void CheckTerminalsTest()
{
var vm = new MainViewModel();
var stuffedData = new StuffedDataModel
{
Imprint = "D-PE1231231",
WireModel = "黄绿色RV0.5-CE定制",
2024-10-26 14:46:06 +08:00
FrontTerminalModel = "C45-1.5-CE定制",
2024-10-26 14:40:28 +08:00
RearTerminalModel = "RNB2-5-CE定制",
};
vm.CheckTerminals(stuffedData);
Assert.IsFalse(!stuffedData.IsError);
更新多个文件,添加新功能和修复bug 在 `CheckTest.cs` 文件中,添加了三个新的测试方法:`CheckWireErpNrTest`、`ChecImprintTest` 和 `CheckSizeTest`。 在 `AssemblyInfo.cs` 文件中,将程序集版本和文件版本从 `1.0.0.5` 更新为 `1.0.0.6`。 在 `StuffTest.cs` 文件中,添加了一个新的断言 `Assert.IsTrue(result.Where(it => it.Imprint == "EC5L3").First().WireColor == "BK");`。 在 `LectotypeWindow.xaml` 文件中,添加了一个新的 `Window` 定义,包括资源字典、按钮和 `TabControl` 控件。 在 `LectotypeWindow.xaml.cs` 文件中,添加了 `LectotypeWindow` 类的定义和相关的事件处理方法。 在 `MainWindow.xaml` 文件中,移除了旧的样式定义,添加了新的资源字典引用,并更新了 `GroupBox` 为 `hc:Card` 控件,调整了按钮样式和 `DataGrid` 的样式。 在 `MainWindow.xaml` 文件中,更新了 `DataGrid` 的 `RowStyle` 和 `CellStyle`,并添加了新的触发器和样式设置。 在 `MainWindow.xaml` 文件中,更新了检查配置项的布局,使用 `hc:Card` 控件替换了 `GroupBox`,并调整了文本块的样式和布局。 在 `MainWindow.xaml.cs` 文件中: * 在 `MainWindow` 类中添加了对 `model.IsError` 的检查,如果为 `true`,则将 `model.IsIgnore` 设置为 `true`。 * 在 `Copy_Click` 方法中添加了 `try-catch` 块来捕获异常,并在捕获到异常时显示错误消息。 * 在 `GoToSource_Click` 方法中添加了 `try-catch` 块来捕获异常,并在捕获到异常时显示错误消息。 * 将 `Array.Empty<object>()` 替换为 `[]`。 在 `CheckedModel.cs` 文件中: * 注释掉了 `SetProperty` 方法中对 `Equals` 方法的检查。 在 `LectotypeModel.cs` 文件中: * 新增了 `LectotypeModel` 类,包含多个属性和相应的 `OnPropertyChanged` 调用。 在 `LineSegmentModel.cs` 文件中: * 新增了 `LineSegmentModel` 类,包含 `LineAxisNo`、`LineType` 和 `LineParagraph` 属性。 在 `AssemblyInfo.cs` 文件中: * 更新了程序集版本号,从 `1.0.0.5` 更新到 `1.0.0.6`。 在 `Sinvo.EplanHpD.Plugin.WPFUI.csproj` 文件中: * 添加了对 `EPLAN.Harness.MathLib` 的引用。 * 添加了 `LectotypeWindow.xaml` 和 `TestWindow.xaml` 及其对应的代码文件。 * 添加了 `HandyControl` 包的引用。 在 `TestWindow.xaml` 文件中: * 新增了 `TestWindow` 窗口的 XAML 定义,包含一个 `DataGrid` 控件。 在 `TestWindow.xaml.cs` 文件中: * 新增了 `TestWindow` 类,包含加载数据的方法。 在 `ExcelHelper.cs` 文件中: * 修改了 `GetWireTerminalMappingTable` 方法,使其在 `Prefix` 为 `null` 时也能匹配。 * 新增了 `GetWireInfo` 方法,用于获取线材信息。 在 `LectotypeViewModel.cs` 文件中: * 新增了 `LectotypeViewModel` 类,包含加载数据的方法和多个辅助方法。 在 `MainViewModel.Check.cs` 文件中: * 在 `ValidateItem` 方法中添加了对 `CheckWireErpNr` 方法的调用。 * 新增了 `CheckWireErpNr` 方法,用于检查线材料号。 * 在 `CheckNumberTube` 方法中添加了对 `item.Imprint` 是否为空的检查。 将 `data.AsParallel().WithDegreeOfParallelism(8).ForAll(entry =>` 修改为 `data.Where(it => it.OrigOcc == "OccWire" && !(it?.Properties["WireName"]?.GetDisplayValue()?.StartsWith("导线") ?? false)).AsParallel().WithDegreeOfParallelism(1).ForAll(entry =>`,以过滤出 `OrigOcc` 为 "OccWire" 且 `WireName` 不以 "导线" 开头的数据,并将并行度设置为 1。 将 `data.FrontTerminalModel = item.ConnectorFrom.Contains(":") ? item.ConnectorFrom.Split(':')[0] : item.ConnectorFrom;` 修改为 `data.FrontTerminalModel = item.ConnectorFrom?.Contains(":") ?? false ? item.ConnectorFrom.Split(':')[0] : item.ConnectorFrom ?? "";`,以处理 `ConnectorFrom` 可能为 null 的情况。 将 `data.RearTerminalModel = item.ConnectorTo.Contains(":") ? item.ConnectorTo.Split(':')[0] : item.ConnectorTo;` 修改为 `data.RearTerminalModel = item.ConnectorTo?.Contains(":") ?? false ? item.ConnectorTo.Split(':')[0] : item.ConnectorTo ?? "";`,以处理 `ConnectorTo` 可能为 null 的情况。 删除了 `if (insulationModels.Any()) { data.Insulation = insulationModels.First(); }` 语句块,简化了代码逻辑。 更新了 `GetWireColorCode` 方法中的注释,将原来的注释替换为更简洁的版本。
2024-11-07 12:14:44 +08:00
}
[TestMethod]
public void CheckWireErpNrTest()
{
var vm = new MainViewModel();
var stuffedData = new StuffedDataModel
{
Imprint = "D-PE1231231",
WireModel = "黄绿色RV0.5-CE定制",
FrontTerminalModel = "C45-1.5-CE定制",
RearTerminalModel = "RNB2-5-CE定制",
};
vm.CheckWireErpNr(stuffedData);
Assert.IsFalse(!stuffedData.IsError);
}
[TestMethod]
public void ChecImprintTest()
{
var vm = new MainViewModel();
var stuffedData = new StuffedDataModel
{
Imprint = "",
WireModel = "黄绿色RV0.5-CE定制",
FrontTerminalModel = "C45-1.5-CE定制",
RearTerminalModel = "RNB2-5-CE定制",
};
vm.CheckAll(new List<StuffedDataModel>(){
stuffedData });
Assert.IsFalse(!stuffedData.IsError);
2024-10-26 14:40:28 +08:00
}
2024-10-28 14:29:56 +08:00
[TestMethod]
public void CheckSizeTest()
{
var vm = new MainViewModel();
/*
线 线 线 线 线 线 线 线
w_00196 BK RV1.5-CE 42012300001005 C45-1.5-CE 42020100000382 5.2 mm SV5.5-6 42020100000140 7.2 mm 1.5 367 L1SSR527 RV-BK-1x1.5-367-16×N2-L1SSR527 1 φ3 42020100000003 V-1.5-CE() 42013500000414 0
*/
var stuffedData = new StuffedDataModel
{
WireName = "w_00196",
WireColor = "BK",
WireModel = "黑色RV2.0-CE定制",
2024-10-28 14:29:56 +08:00
WireCode = "42012300001005",
FrontTerminalModel = "C45-1.0-CE定制",
FrontTerminalMaterialCode = "42020100000382",
FrontStripLength = "5.2 mm",
RearTerminalModel = "红色SV5.5-6定制",
RearTerminalMaterialCode = "42020100000140",
RearStripLength = "7.2 mm",
CrossSection = "1.5",
WireLength = "367",
WireNumber = "L1SSR527",
Model = "RV-BK-1x1.5-367-16×N2-L1SSR527",
Quantity = 1,
NumberTubeContent = "白色号码管φ3定制",
NumberTubeMaterialNo = "42020100000003",
DiscolorationDesc = "V-1.5-CE(褐色)/定制",
Insulation = new InsulationModel()
{
Specification = "V-1.5-CE(褐色)/定制",
MaterialCode = "42013500000414"
},
};
vm.CheckInsulation(stuffedData);
Assert.IsFalse(!stuffedData.IsError);
}
2024-11-02 11:56:50 +08:00
2024-10-26 14:40:28 +08:00
}
}