/* 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.Controller.Elements; namespace Tests.Controller.Elements { [TestFixture] class ItemsTest { Document _document; zaaReloaded2.Formatter.Formatter _formatter; [SetUp] public void SetUp() { _document = new Document(); _formatter = new zaaReloaded2.Formatter.Formatter(_document); _formatter.Settings.ReferenceStyle = ReferenceStyle.IfAbnormal; } [TearDown] public void TearDown() { ((_Document)_document).Close(WdSaveOptions.wdDoNotSaveChanges); } [Test] public void ItemsTestWithoutCaption() { Laboratory lab = new Laboratory(); 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. lab.AddTimePoint(tp); _formatter.Laboratory = lab; _formatter.Settings.Elements.Add(new zaa.Items("Na, K, Cl")); _formatter.Run(); Assert.AreEqual("\r" + TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) + "\rNa 133, K 6 (5)\r\r", _document.Range().Text); } [Test] public void ItemsTestWithCaption() { Laboratory lab = new Laboratory(); 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. lab.AddTimePoint(tp); _formatter.Laboratory = lab; _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: Na, K, Cl")); _formatter.Run(); Assert.AreEqual("\r" + TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) + "\rKlinische Chemie: Na 133, K 6 (5)\r\r", _document.Range().Text); } [Test] public void ItemsTestWithCaptionButNoItems() { Laboratory lab = new Laboratory(); 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. lab.AddTimePoint(tp); _formatter.Laboratory = lab; _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: this, does, not, exist")); _formatter.Run(); Assert.AreEqual("\r", _document.Range().Text); } [Test] public void GenericItemsWildcard() { Laboratory lab = new Laboratory(); 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", "")); tp.AddItem(new LabItem("Cl", "110", "")); lab.AddTimePoint(tp); _formatter.Settings.ReferenceStyle = ReferenceStyle.Never; _formatter.Laboratory = lab; _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: Na, *")); _formatter.Run(); Assert.AreEqual("\r" + TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) + "\rKlinische Chemie: Na 133, Cl 110, K 6\r\r", _document.Range().Text); } [Test] public void MaterialWildcard() { Laboratory lab = new Laboratory(); TimePoint tp = new TimePoint(); tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00); tp.AddItem(new LabItem("Na", "133", "")); tp.AddItem(new LabItem("U-Na", "99", "")); tp.AddItem(new LabItem("Cl", "110", "")); tp.AddItem(new LabItem("SU-Protein", "2.8", "")); lab.AddTimePoint(tp); _formatter.Settings.ReferenceStyle = ReferenceStyle.Never; _formatter.Laboratory = lab; _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: Na, SU-*")); _formatter.Run(); Assert.AreEqual("\r" + TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) + "\rKlinische Chemie: Na 133, SU-Protein 2,8\r\r", _document.Range().Text); } [Test] public void MaterialAndGenericWildcard() { Laboratory lab = new Laboratory(); TimePoint tp = new TimePoint(); tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00); tp.AddItem(new LabItem("Na", "133", "")); tp.AddItem(new LabItem("U-Na", "99", "")); tp.AddItem(new LabItem("Cl", "110", "")); tp.AddItem(new LabItem("SU-Protein", "2.8", "")); lab.AddTimePoint(tp); _formatter.Settings.ReferenceStyle = ReferenceStyle.Never; _formatter.Laboratory = lab; _formatter.Settings.Elements.Add(new zaa.Items("Klinische Chemie: Na, SU-*, *")); _formatter.Run(); Assert.AreEqual("\r" + TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) + "\rKlinische Chemie: Na 133, SU-Protein 2,8, Cl 110, U-Na 99\r\r", _document.Range().Text); } } }