using System.Linq; using Core.Common.Gui.Plugin; using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.Views; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Plugin.Test.ViewInfos { [TestFixture] public class CommentViewInfoTest { private MockRepository mocks; private RingtoetsGuiPlugin plugin; private ViewInfo info; [SetUp] public void SetUp() { mocks = new MockRepository(); plugin = new RingtoetsGuiPlugin(); info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(CommentView)); } [TearDown] public void TearDown() { plugin.Dispose(); } [Test] public void Initialized_Always_ExpectedPropertiesSet() { // Assert Assert.AreEqual(typeof(CommentContext), info.DataType); } [Test] public void GetViewName_Always_ReturnsViewName() { // Setup var commentMock = mocks.StrictMock(); var viewMock = mocks.StrictMock(); mocks.ReplayAll(); // Call var viewName = info.GetViewName(viewMock, commentMock); // Assert Assert.AreEqual("Opmerkingen", viewName); } [Test] public void GetViewData_Always_ReturnsIComment() { // Setup var commentMock = mocks.StrictMock(); var assessmentSectionMock = mocks.StrictMock(); var contextMock = mocks.StrictMock>(commentMock, assessmentSectionMock); mocks.ReplayAll(); // Call var viewData = info.GetViewData(contextMock); // Assert Assert.AreSame(commentMock, viewData); } [Test] public void ViewType_Always_ReturnsViewType() { // Call var viewType = info.ViewType; // Assert Assert.AreEqual(typeof(CommentView), viewType); } [Test] public void DataType_Always_ReturnsDataType() { // Call var dataType = info.DataType; // Assert Assert.AreEqual(typeof(CommentContext), dataType); } [Test] public void ViewDataType_Always_ReturnViewDataType() { // Call var viewDataType = info.ViewDataType; // Assert Assert.AreEqual(typeof(IComment), viewDataType); } [Test] public void Image_Always_ReturnsGenericInputOutputIcon() { // Call var image = info.Image; // Assert TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.GenericInputOutputIcon, image); } [Test] public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue() { // Setup var viewMock = mocks.StrictMock(); var commentMock = mocks.Stub(); var assessmentSectionMock = mocks.Stub(); viewMock.Expect(vm => vm.Data).Return(commentMock); viewMock.Expect(vm => vm.AssessmentSection).Return(assessmentSectionMock); mocks.ReplayAll(); // Call var closeForData = info.CloseForData(viewMock, assessmentSectionMock); // Assert Assert.IsTrue(closeForData); } [Test] public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnsFalse() { // Setup var viewMock = mocks.StrictMock(); var commentMock = mocks.Stub(); var assessmentSectionMock = mocks.StrictMock(); var assessmentSectionMock2 = mocks.StrictMock(); viewMock.Expect(vm => vm.Data).Return(commentMock); viewMock.Expect(vm => vm.AssessmentSection).Return(assessmentSectionMock2); mocks.ReplayAll(); // Call var closeForData = info.CloseForData(viewMock, assessmentSectionMock); // Assert Assert.IsFalse(closeForData); } } }