Add formatter and initial tests.

This commit is contained in:
Daniel Kraus
2015-07-13 23:57:35 +02:00
parent a847c1f8ba
commit e36fee52ad
25 changed files with 1038 additions and 17 deletions

View File

@ -0,0 +1,84 @@
/* ItemsTest.cs
* part of zaaReloaded2
*
* Copyright 2015 Daniel Kraus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Microsoft.Office.Interop.Word;
using zaaReloaded2.LabModel;
using zaaReloaded2.Formatter;
using zaa = zaaReloaded2.Formatter.Elements;
namespace Tests.Formatter.Elements
{
[TestFixture]
class ItemsTest
{
[Test]
public void ItemsTestWithoutCaption()
{
zaa.Items i = new zaa.Items("Na, K, Cl");
TimePoint tp = new TimePoint();
tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00);
tp.AddItem(new LabItem("Na", "133", "133"));
tp.AddItem(new LabItem("K", "6", "5"));
// We do not add a 'Cl' item, and it should not appear in output.
TimePointFormatter tpf = new TimePointFormatter(tp, ReferenceStyle.IfAbnormal);
TimePointFormatterDictionary tpfd = new TimePointFormatterDictionary();
tpfd.Add(tpf.TimeStamp, tpf);
Document document = new Document();
i.WriteToDocument(document, tpfd);
Assert.AreEqual("Na 133, K 6 (5)\r", document.Range().Text);
}
[Test]
public void ItemsTestWithCaption()
{
zaa.Items i = new zaa.Items("Klinische Chemie: Na, K, Cl");
TimePoint tp = new TimePoint();
tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00);
tp.AddItem(new LabItem("Na", "133", ""));
tp.AddItem(new LabItem("K", "6", "5"));
// We do not add a 'Cl' item, and it should not appear in output.
TimePointFormatter tpf = new TimePointFormatter(tp, ReferenceStyle.IfAbnormal);
TimePointFormatterDictionary tpfd = new TimePointFormatterDictionary();
tpfd.Add(tpf.TimeStamp, tpf);
Document document = new Document();
i.WriteToDocument(document, tpfd);
Assert.AreEqual("Klinische Chemie: Na 133, K 6 (5)\r", document.Range().Text);
}
[Test]
public void ItemsTestWithCaptionButNoItems()
{
zaa.Items i = new zaa.Items("Klinische Chemie: this, does, not, exist");
TimePoint tp = new TimePoint();
tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00);
tp.AddItem(new LabItem("Na", "133", ""));
tp.AddItem(new LabItem("K", "6", "5"));
// We do not add a 'Cl' item, and it should not appear in output.
TimePointFormatter tpf = new TimePointFormatter(tp, ReferenceStyle.IfAbnormal);
TimePointFormatterDictionary tpfd = new TimePointFormatterDictionary();
tpfd.Add(tpf.TimeStamp, tpf);
Document document = new Document();
i.WriteToDocument(document, tpfd);
Assert.AreEqual("\r", document.Range().Text);
}
}
}

View File

@ -0,0 +1,45 @@
/* FormatterTest.cs
* part of zaaReloaded2
*
* Copyright 2015 Daniel Kraus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using f = zaaReloaded2.Formatter;
using zaaReloaded2.LabModel;
using zaaReloaded2.Importer.ZaaImporter;
using Microsoft.Office.Interop.Word;
namespace Tests.Formatter
{
[TestFixture]
class FormatterTest
{
[Test]
public void FormatLaboratory()
{
ZaaImporter importer = TestHelpers.ZaaImporterFromResource();
f.Formatter formatter = new f.Formatter();
formatter.Laboratory = importer.Laboratory;
formatter.Elements.Add(new f.Elements.Items("Klinische Chemie: Na, K, Cl"));
Document document = new Document();
formatter.WriteToDocument(document);
Assert.AreEqual("Klinische Chemie: Na: 132 mmol/l", document.Range().Text);
}
}
}

View File

@ -37,11 +37,7 @@ namespace Tests.Importer.ZaaImporter
[Test]
public void ParseTimePoints()
{
Stream s = this.GetType().Assembly.GetManifestResourceStream("Tests.demo-output.txt");
StreamReader r = new StreamReader(s);
zaa.ZaaImporter importer = new zaa.ZaaImporter();
importer.Import(r.ReadToEnd());
zaa.ZaaImporter importer = TestHelpers.ZaaImporterFromResource();
// Only 6 distinct time points (see method documentation above).
Assert.AreEqual(6, importer.Laboratory.TimePoints.Count);
}

42
Tests/TestHelpers.cs Executable file
View File

@ -0,0 +1,42 @@
/* TestHelpers.cs
* part of zaaReloaded2
*
* Copyright 2015 Daniel Kraus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using zaaReloaded2.Importer.ZaaImporter;
namespace Tests
{
class TestHelpers
{
/// <summary>
/// Creates a ZaaImporter object and imports demo-output.txt.
/// </summary>
/// <returns></returns>
public static ZaaImporter ZaaImporterFromResource()
{
Stream s = typeof(TestHelpers).Assembly.GetManifestResourceStream("Tests.demo-output.txt");
StreamReader r = new StreamReader(s);
ZaaImporter importer = new ZaaImporter();
importer.Import(r.ReadToEnd());
return importer;
}
}
}

View File

@ -41,6 +41,9 @@
<AssemblyOriginatorKeyFile>zaaReloaded2.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Office.Interop.Word, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
@ -64,6 +67,8 @@
</Choose>
<ItemGroup>
<Compile Include="Dictionaries\DictionaryTest.cs" />
<Compile Include="Formatter\Elements\ItemsTest.cs" />
<Compile Include="Formatter\FormatterTest.cs" />
<Compile Include="Importer\ZaaImporter\LaurisItemTest.cs" />
<Compile Include="Importer\ZaaImporter\LaurisParagraphTest.cs" />
<Compile Include="Importer\ZaaImporter\ZaaImporterTest.cs" />
@ -71,6 +76,7 @@
<Compile Include="LineParserTest.cs" />
<Compile Include="Dictionaries\TestDictionary.cs" />
<Compile Include="Importer\ZaaImporter\TimePointTest.cs" />
<Compile Include="TestHelpers.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
@ -89,6 +95,7 @@
<ItemGroup>
<EmbeddedResource Include="demo-output.txt" />
</ItemGroup>
<ItemGroup />
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>