public void SetUp() { specification = MockRepository.GenerateMock <ISpecification <string> >(); testAlbum = new Album("Depeche Mode", "Violator", 1991, "New Wave"); sut = new PropertySpecification <Album, string>(x => x.Artist, specification); }
public void AdvancedPropertyDescriptorConstructionTestWithFuncs() { PropertyBag bag = new PropertyBag(); // add some property specifications. var property1 = new PropertySpecification("Property 1", typeof(string), "Cat1", "Prop1 desc", "Foo"); // make readonly property1.Attributes.Add(ReadOnlyAttribute.Yes); bag.PropertySpecifications.Add(property1); // add expanding property var property2 = new PropertySpecification("Picture", typeof(Image), "Some Category", "This is a sample description."); property2.Attributes.Add(new TypeConverterAttribute(typeof(ExpandableObjectConverter))); bag.PropertySpecifications.Add(property2); // custom editor var property3 = new PropertySpecification("Source folder", typeof(string), "OutputFolders", "The output folder for the sourcecode", "c:\\temp"); property3.Attributes.Add(new EditorAttribute(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))); property3.ConvertEmptyStringToNull = true; bag.PropertySpecifications.Add(property3); // use value list var property4 = new PropertySpecification("PickAValue", typeof(string), "Cat1", "A property which value has to be picked from a list", "One"); property4.TypeConverterType = typeof(PropertySpecificationValuesListTypeConverter); property4.ValueList.AddRange(new[] { "One", "Two", "Three", "Many" }); bag.PropertySpecifications.Add(property4); var property5 = new PropertySpecification("EnumValue", typeof(ConsoleColor), "Cat1", "Enum property to see that values are converted back/forth to int"); bag.PropertySpecifications.Add(property5); // value list to store values in Dictionary <string, object> values = new Dictionary <string, object>(); // func setting so values get store inside the dictionary and also retrieved from it. Console write added to see what happens when you bind // a windows forms propertygrid to a bag: many many redundant calls to the getters/setters occur. bag.ValueGetterFunc = (s) => { var v = values.GetValue(s); Console.WriteLine("Get: {0} : {1}", s, v ?? "<null>"); return(v); }; bag.ValueSetterFunc = (s, v) => { values[s] = v; Console.WriteLine("Set: {0} : {1}", s, v ?? "<null>"); }; // open a testform which binds the bag to the propertygrid. Editing values will store the values in the dictionary, default values are // not in the dictionary. using (TestForm f = new TestForm(bag)) { f.ShowDialog(); } }
public void IsSatisfiedByWithNullRequestShouldThrowArgumentNullException() { // Arrange var sut = new PropertySpecification(typeof(object), "someName"); // Act & assert Assert.Throws <ArgumentNullException>(() => sut.IsSatisfiedBy(null)); }
public void SutIsRequestSpecification() { // Arrange // Act var sut = new PropertySpecification(typeof(object), "someName"); // Assert Assert.IsAssignableFrom <IRequestSpecification>(sut); }
public void IsSatisfiedByWithInvalidRequestShouldReturnFalse(object request) { // Arrange var sut = new PropertySpecification(typeof(object), "someName"); // Act var result = sut.IsSatisfiedBy(request); // Assert Assert.False(result); }
public void InvokeCompositeFalseProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, bool>( ft => ft.Inter.Third, new FalseSpecification()); var sut = new MockCompositeSpecification <FakeType>().False( ft => ft.Inter.Third); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void IsSatisfiedByWithNullRequestShouldThrowArgumentNullException() { // Fixture setup var sut = new PropertySpecification(typeof(object), "someName"); // Exercise system and verify outcome Assert.Throws <ArgumentNullException>(() => sut.IsSatisfiedBy(null)); // Teardown }
public void InvokeIsTypeProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, int>( ft => ft.First, new IsTypeSpecification <int>(typeof(FakeType))); var sut = Specification.IsType <FakeType, int>( ft => ft.First, typeof(FakeType)); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeMaxLengthProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new MaxLengthSpecification <string>(0, true)); var sut = Specification.MaxLength <FakeType, string>( ft => ft.Second, 0); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeStringContainsProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new ContainsSpecification(" ")); var sut = Specification.Contains <FakeType>( ft => ft.Second, " "); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeNullProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new NullSpecification <string>()); var sut = new MockCompositeSpecification <FakeType>().Null( ft => ft.Second); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCreditCardProperty_ReturnPropertySpecification() { var expected = new PropertySpecification<FakeType, string>( ft => ft.Second, new CreditCardSpecification()); var sut = Specification.CreditCard<FakeType>( ft => ft.Second); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void SutIsRequestSpecification() { // Fixture setup // Exercise system var sut = new PropertySpecification(typeof(object), "someName"); // Verify outcome Assert.IsAssignableFrom <IRequestSpecification>(sut); // Teardown }
public void InvokeExpressionProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, int>( ft => ft.First, new ExpressionSpecification <int>(ft => true)); var sut = Specification.Expression <FakeType, int>( ft => ft.First, ft => true); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void TrueSpecification_ReturnTrue <T>(FakeType candidate, Expression <Func <FakeType, T> > selector) { var specification = MockSpecification <T> .True(); var sut = new PropertySpecification <FakeType, T>(selector, specification); var result = sut.IsSatisfiedBy(candidate); Assert.True(result); }
public void InvokeTrueProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, bool>( ft => ft.Inter.Third, new TrueSpecification()); var sut = Specification.True <FakeType>( ft => ft.Inter.Third); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeMatchProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new MatchSpecification("pattern", RegexOptions.IgnoreCase)); var sut = Specification.Match <FakeType>( ft => ft.Second, "pattern", RegexOptions.IgnoreCase); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeMinLengthProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new MinLengthSpecification <string>(0, true)); var sut = new MockCompositeSpecification <FakeType>().MinLength( ft => ft.Second, 0); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeForProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>(ft => ft.Second, MockComplexSpecification <string> .True()); var sut = new MockCompositeSpecification <FakeType>().ForProperty( ft => ft.Second, MockComplexSpecification <string> .True()); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeEmptyProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new EmptySpecification <string>(true)); var sut = Specification.Empty <FakeType, string>( ft => ft.Second); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeContainsProperty_ReturnPropertySpecification() { var comparer = new FakeIntComparer(); var expected = new PropertySpecification <FakeType, IEnumerable <int> >( ft => ft.Fourth, new ContainsSpecification <IEnumerable <int>, int>(0, comparer, true)); var sut = Specification.Contains <FakeType, int>( ft => ft.Fourth, 0, comparer); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void FalseSpecification_ReturnFalse <T>(FakeType candidate, Expression <Func <FakeType, T> > selector) { candidate = candidate.Second != "null" ? candidate : null; var specification = MockSpecification <T> .False(); var sut = new PropertySpecification <FakeType, T>(selector, specification); var result = sut.IsSatisfiedBy(candidate); Assert.False(result); }
public void InvokeTrueSpecification_ReturnTrue <T>(FakeType candidate, Expression <Func <FakeType, T> > selector) { var specification = MockSpecification <T> .True(); var sut = new PropertySpecification <FakeType, T>(selector, specification); var result = sut.GetExpression().Compile().Invoke(candidate); Assert.True(result); }
public void InvokeEqualProperty_ReturnPropertySpecification() { var comparer = new FakeIntComparer(); var expected = new PropertySpecification <FakeType, int>( ft => ft.First, new EqualSpecification <int>(0, comparer)); var sut = Specification.Equal <FakeType, int>( ft => ft.First, 0, comparer); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeInclusiveBetweenProperty_ReturnPropertySpecification() { var comparer = new FakeIntComparer(); var expected = new PropertySpecification <FakeType, int>( ft => ft.First, new InclusiveBetweenSpecification <int>(0, 0, comparer)); var sut = new MockCompositeSpecification <FakeType>().InclusiveBetween( ft => ft.First, 0, 0, comparer); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void IsSatisfiedByWithInvalidRequestShouldReturnFalse(object request) { // Fixture setup var sut = new PropertySpecification(typeof(object), "someName"); // Exercise system var result = sut.IsSatisfiedBy(request); // Verify outcome Assert.False(result); // Teardown }
public void InvokeNotLengthBetweenProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new NotSpecification <string>( new LengthBetweenSpecification <string>(0, 0, true))); var sut = Specification.NotLengthBetween <FakeType, string>( ft => ft.Second, 0, 0); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeLessThanOrEqualProperty_ReturnPropertySpecification() { var comparer = new FakeIntComparer(); var expected = new PropertySpecification <FakeType, int>( ft => ft.First, new LessThanOrEqualSpecification <int>(0, comparer)); var sut = new MockCompositeSpecification <FakeType>().LessThanOrEqual( ft => ft.First, 0, comparer); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeNotEmailProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new NotSpecification <string>( new EmailSpecification())); var sut = Specification.NotEmail <FakeType>( ft => ft.Second); Assert.Equal(expected, sut, new SpecificationComparer()); }
public void InvokeCompositeStringNotContainsProperty_ReturnPropertySpecification() { var expected = new PropertySpecification <FakeType, string>( ft => ft.Second, new NotSpecification <string>( new ContainsSpecification(" "))); var sut = new MockCompositeSpecification <FakeType>().NotContains( ft => ft.Second, " "); Assert.Equal(expected, sut, new SpecificationComparer()); }