Working comments with CommentPool.

This commit is contained in:
Daniel Kraus
2015-08-30 07:48:32 +02:00
parent a89a8103e5
commit 02b4bc07a3
11 changed files with 285 additions and 106 deletions

View File

@ -0,0 +1,60 @@
/* CommentPoolTest.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 zaaReloaded2.Controller.Comments;
namespace Tests.Controller.Comments
{
[TestFixture]
class CommentPoolTest
{
[Test]
public void CreateCommentIfDoesNotExist()
{
int n = CommentPool.Default.Count;
ItemComment i = CommentPool.Default.GetCommentFor("item \"<>\"");
Assert.AreEqual(n + 1, CommentPool.Default.Count);
}
[Test]
public void ReturnExistingComment()
{
ItemComment i = CommentPool.Default.GetCommentFor("item \"<>\"");
int n = CommentPool.Default.Count;
i = CommentPool.Default.GetCommentFor("item \"<>\"");
Assert.AreEqual(n, CommentPool.Default.Count);
}
[Test]
public void BuildingCommentRaisesEvent()
{
ItemComment i = CommentPool.Default.GetCommentFor("item \"<>\"");
bool eventRaised = false;
CommentPool.Default.FillInComment += (sender, args) =>
{
eventRaised = true;
};
string comment = i.BuildComment();
Assert.IsTrue(eventRaised);
}
}
}

View File

@ -21,8 +21,9 @@ using System.Linq;
using System.Text;
using NUnit.Framework;
using zaaReloaded2.Formatter;
using zaaReloaded2.Controller.Comments;
namespace Tests.Formatter
namespace Tests.Controller.Comments
{
[TestFixture]
class ItemCommentTest
@ -30,7 +31,7 @@ namespace Tests.Formatter
[Test]
public void FactoryWithGoodDefinition()
{
ItemComment i = ItemComment.FromDefinition("TAC \"(Zielbereich: <4-7> µg/l)\"");
ItemComment i = ItemComment.FromDefinitionString("TAC \"(Zielbereich: <4-7> µg/l)\"");
Assert.IsNotNull(i);
Assert.AreEqual("(Zielbereich: ", i.Prefix);
Assert.AreEqual("4-7", i.Value);
@ -42,14 +43,14 @@ namespace Tests.Formatter
[Test]
public void FactoryWithBadDefinition()
{
ItemComment i = ItemComment.FromDefinition("some bogus definition");
ItemComment i = ItemComment.FromDefinitionString("some bogus definition");
Assert.IsNull(i);
}
[Test]
public void EmptyValueProducesEmptyComment()
{
ItemComment i = ItemComment.FromDefinition("TAC \"(Zielbereich: <default> µg/l)\"");
ItemComment i = ItemComment.FromDefinitionString("TAC \"(Zielbereich: <default> µg/l)\"");
i.Value = String.Empty;
Assert.AreEqual(String.Empty, i.BuildComment());
}

View File

@ -24,7 +24,9 @@ using Microsoft.Office.Interop.Word;
using zaaReloaded2.LabModel;
using zaaReloaded2.Formatter;
using zaa = zaaReloaded2.Controller.Elements;
using zaaReloaded2.Controller.Comments;
using System.Text.RegularExpressions;
using zaaReloaded2.Controller.Comments;
namespace Tests.Controller.Elements
{
@ -203,6 +205,35 @@ namespace Tests.Controller.Elements
Assert.AreEqual(expected, _document.Range().Text);
}
[Test]
public void ItemCommentWithHandler()
{
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"));
lab.AddTimePoint(tp);
_formatter.Laboratory = lab;
_formatter.Settings.Elements.Add(
new zaa.Items("Na \"(Zielbereich: <default> µg/l)\""));
bool messageSent = false;
CommentPool.Default.FillInComment += (sender, args) =>
{
messageSent = true;
args.Comment.Value = "4-7";
};
_formatter.Run();
Assert.IsTrue(messageSent, "FillInComment message was not sent");
string expected = (
StripMarkup(
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) +
"Na 133 (Zielbereich: 4-7 µg/l)\r\r").Replace(Environment.NewLine, "\r")
);
Assert.AreEqual(expected, _document.Range().Text);
}
static string StripMarkup(string s)
{
return _markupStripper.Replace(s, string.Empty);

View File

@ -80,7 +80,8 @@
</Otherwise>
</Choose>
<ItemGroup>
<Compile Include="Formatter\ItemCommentTest.cs" />
<Compile Include="Controller\Comments\CommentPoolTest.cs" />
<Compile Include="Controller\Comments\ItemCommentTest.cs" />
<Compile Include="SerializationTest.cs" />
<Compile Include="Controller\SettingsRepositoryTest.cs" />
<Compile Include="Controller\SettingsTest.cs" />