156 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C#
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C#
		
	
	
		
			Executable File
		
	
	
	
	
| /* FormatterTest.cs
 | |
|  * part of zaaReloaded2
 | |
|  * 
 | |
|  * Copyright 2015-2018 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 zaaReloaded2.Controller.Elements;
 | |
| using Microsoft.Office.Interop.Word;
 | |
| using System.IO;
 | |
| 
 | |
| namespace Tests.Formatter
 | |
| {
 | |
|     [TestFixture]
 | |
|     class FormatterTest
 | |
|     {
 | |
|         Document _document;
 | |
|         f.Formatter _formatter;
 | |
| 
 | |
|         [SetUp]
 | |
|         public void SetUp()
 | |
|         {
 | |
|             _document = new Document();
 | |
|             ZaaImporter importer = TestHelpers.ZaaImporterFromResource();
 | |
|             _formatter = new f.Formatter(_document);
 | |
|             _formatter.Laboratory = importer.Laboratory;
 | |
|         }
 | |
| 
 | |
|         [TearDown]
 | |
|         public void TearDown()
 | |
|         {
 | |
|             ((_Document)_document).Close(WdSaveOptions.wdDoNotSaveChanges);
 | |
|         }
 | |
| 
 | |
|         [Test]
 | |
|         public void FormatLaboratory()
 | |
|         {
 | |
|             _formatter.Settings.Elements.Add(new Items("Klinische Chemie: Na, K, Cl"));
 | |
|             _formatter.Run();
 | |
|             Assert.AreEqual(
 | |
|                 GetResourceText("Tests.Formatter.FormatterTest-all.txt"),
 | |
|                 _document.Range().Text);
 | |
|         }
 | |
| 
 | |
|         [Test]
 | |
|         public void SelectEachDay()
 | |
|         {
 | |
|             _formatter.Settings.Elements.Add(
 | |
|                 new SelectEachDay(
 | |
|                     new Items("Klinische Chemie: Na, K, Cl"))
 | |
|                 );
 | |
|             _formatter.Run();
 | |
|             Assert.AreEqual(
 | |
|                 GetResourceText("Tests.Formatter.FormatterTest-eachday.txt"),
 | |
|                 _document.Range().Text);
 | |
|         }
 | |
| 
 | |
|         [Test]
 | |
|         public void SelectFirstDay()
 | |
|         {
 | |
|             _formatter.Settings.Elements.Add(
 | |
|                 new SelectFirstDay(
 | |
|                     new Items("Klinische Chemie: Na, K, Cl"))
 | |
|                 );
 | |
|             _formatter.Run();
 | |
|             Assert.AreEqual(
 | |
|                 GetResourceText("Tests.Formatter.FormatterTest-firstday.txt"),
 | |
|                 _document.Range().Text);
 | |
|         }
 | |
| 
 | |
|         [Test]
 | |
|         public void SelectLastDay()
 | |
|         {
 | |
|             _formatter.Settings.Elements.Add(
 | |
|                 new SelectLastDay(
 | |
|                     new Items("Klinische Chemie: Na, K, Cl"))
 | |
|                 );
 | |
|             _formatter.Run();
 | |
|             Assert.AreEqual(
 | |
|                 GetResourceText("Tests.Formatter.FormatterTest-lastday.txt"),
 | |
|                 _document.Range().Text);
 | |
|         }
 | |
| 
 | |
|         [Test]
 | |
|         public void FormatSpecialItems()
 | |
|         {
 | |
|             ZaaImporter importer = new ZaaImporter();
 | |
|             importer.Import(
 | |
|                 "Klinische Chemie: glomerul. Filtrationsr. CKD-EP: 36 ml/min /1,73qm; " +
 | |
|                 "Sammelmenge (U): 12300 ml; "
 | |
|                 );
 | |
|             Document document = new Document();
 | |
|             f.Formatter formatter = new f.Formatter(document);
 | |
|             formatter.Laboratory = importer.Laboratory;
 | |
|             formatter.Settings = new zaaReloaded2.Controller.Settings(
 | |
|                 new List<ElementBase>() { new Items("*") } );
 | |
|             formatter.Run();
 | |
|             Assert.AreEqual(
 | |
|                 "eGFR (CKD-EPI) 36 ml/min/1,73 m², SU-Volumen 12300 ml\r\r",
 | |
|                 document.Range().Text);
 | |
|         }
 | |
| 
 | |
|         [Test]
 | |
|         public void FormatCyclosporine()
 | |
|         {
 | |
|             ZaaImporter importer = new ZaaImporter();
 | |
|             importer.Import(
 | |
|                 "(17.09.2015-201810:44:00) Cyclosporin-A vor Gabe: 130 µg/l;  CK gesamt: 123 [<= 170] U/l;  Cholesterin: 211");
 | |
|             Document document = new Document();
 | |
|             f.Formatter formatter = new f.Formatter(document);
 | |
|             formatter.Laboratory = importer.Laboratory;
 | |
|             formatter.Settings = new zaaReloaded2.Controller.Settings(
 | |
|                 new List<ElementBase>() { new Items("CsA (C0) \"(Ziel-Talspiegel: <> µg/l)\"") });
 | |
|             formatter.Run();
 | |
|             Assert.AreEqual(
 | |
|                 "Laborwerte vom 17.09.2015-201810:44:00:\rCsA (C0) 130 µg/l\r\r",
 | |
|                 document.Range().Text);
 | |
|         }
 | |
| 
 | |
|         string GetResourceText(string resource)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 Stream s = this.GetType().Assembly
 | |
|                     .GetManifestResourceStream(resource);
 | |
|                 StreamReader sr = new StreamReader(s);
 | |
|                 // Need to replace \r\n with \r because this is the newline character
 | |
|                 // that Word uses.
 | |
|                 return sr.ReadToEnd().Replace("\r\n", "\r");
 | |
|             }
 | |
|             catch (Exception e)
 | |
|             {
 | |
|                 throw new IOException("Unable to read " + resource, e);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |