// Copyright (C) Stichting Deltares 2017. All rights reserved.
//
// This file is part of Ringtoets.
//
// Ringtoets is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see .
//
// All names, logos, and references to "Deltares" are registered trademarks of
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
using System.ComponentModel;
using Core.Common.Gui.PropertyBag;
using NUnit.Framework;
using Rhino.Mocks;
namespace Core.Common.TestUtil.Test
{
[TestFixture]
public class PropertiesTestHelperTest
{
[Test]
public void GetAllVisiblePropertyDescriptors_NoProperties_ReturnEmpty()
{
// Setup
var propertiesObject = new NoProperties();
// Call
PropertyDescriptorCollection visibleProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(propertiesObject);
// Assert
CollectionAssert.IsEmpty(visibleProperties);
}
[Test]
public void GetAllVisiblePropertyDescriptors_HiddenProperties_ReturnEmpty()
{
// Setup
var propertiesObject = new HiddenProperties();
// Call
PropertyDescriptorCollection visibleProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(propertiesObject);
// Assert
CollectionAssert.IsEmpty(visibleProperties);
}
[Test]
public void GetAllVisiblePropertyDescriptors_VisibleProperties_ReturnCollectionWithTwoProperties()
{
// Setup
var propertiesObject = new VisibleProperties();
// Call
PropertyDescriptorCollection visibleProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(propertiesObject);
// Assert
Assert.AreEqual(2, visibleProperties.Count);
}
[Test]
[TestCase(true, "", "", "")]
[TestCase(false, "A", "B", "C")]
public void AssertRequiredPropertyDescriptorProperties_PropertyDescriptor_AssertParameters(
bool isReadOnly, string category, string displayName, string description)
{
// Setup
var mocks = new MockRepository();
var propertyDescriptor = mocks.Stub("stub", null);
propertyDescriptor.Stub(pd => pd.IsReadOnly).Return(isReadOnly);
propertyDescriptor.Stub(pd => pd.Category).Return(category);
propertyDescriptor.Stub(pd => pd.DisplayName).Return(displayName);
propertyDescriptor.Stub(pd => pd.Description).Return(description);
mocks.ReplayAll();
// Call
PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(propertyDescriptor,
category,
displayName,
description,
isReadOnly);
// Assert
mocks.VerifyAll();
}
private class NoProperties : ObjectProperties