private ModelDecorators.WithDecorators <StockItem, IModelDecorators <StockItem, Decorators> > DefineDecorationsOnStockItem() { return(ModelDecorators.Init <StockItem, Decorators>() .OnModelIfThenElse(s => s.Weight > Ship.MaxDisembarkWeight, attr => attr.Enabled = false, attr => attr.Enabled = true)); }
public void InitClassWithRecusriveMembers_WithModelDecorators_ReturnDecoratorsForClassAndProperties() { var decorationDefinition = ModelDecorators.Init <RecursiveClassPrincipal, Decorators>(); var modelDecorated = decorationDefinition(recursiveClassPrincipal); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 3); }
public void InitClassWithDynamicProeprty_WithModelDecorators_ReturnDecoratorsNotForDynamicProperty() { var decorationDefinition = ModelDecorators.Init <ClassWithDynamicProperty, Decorators>(); var modelDecorated = decorationDefinition(classWithDynamicProperty); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 8); }
public void InitCollection_WithModelDecorators_ReturnDecoratorsForClassAndPropertiesCollectionsExcluded() { var decorationDefinition = ModelDecorators.Init <ClassWithCollection, Decorators>(); var modelDecorated = decorationDefinition(classWithCollection); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 1); Assert.Catch <InvalidOperationException>(() => modelDecorated.GetFor(m => m.SimpleClasses)); }
public void InitClassDynamic_WithModelDecoratorsFiltered_ReturnDecoratorsForClassAndPropertiesFiltered() { var includeFilter = new FilterSetting(true); var decorationDefinition = ModelDecorators.Init <ClassWithDynamicProperty, Decorators>(initDecorators, includeFilter); var modelDecorated = decorationDefinition(classWithDynamicProperty); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 0); }
public void InitClassWithMembers_WithModelDecoratorsFiltered_ReturnDecoratorsForClassAndPropertiesFiltered() { var excludeFilter = new FilterSetting(false); var decorationDefinition = ModelDecorators.Init <ClassWithMember, Decorators>(initDecorators, excludeFilter); var modelDecorated = decorationDefinition(classWithMember); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 1); Assert.IsTrue(modelDecorated.PropertyDecorators.ContainsKey("CreatedOn")); }
public void InitSimpleClass_WithModelDecoratorsFilteredOut_ReturnDecoratorsForClassAndPropertiesFiltered() { var excludeFilter = new FilterSetting(true); var decorationDefinition = ModelDecorators.Init <SimpleClass, Decorators>(initDecorators, excludeFilter); var modelDecorated = decorationDefinition(simpleClass); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 1); Assert.IsTrue(modelDecorated.PropertyDecorators.ContainsKey("Age")); }
public void InitSimple_WithModelDecorators_ReturnDecoratorsForClassAndProperties() { var decorationDefinition = ModelDecorators.Init <SimpleClass, Decorators>(); var modelDecorated = decorationDefinition(simpleClass); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 5); Assert.IsTrue(modelDecorated.PropertyDecorators["Name"].Enabled == false); Assert.IsTrue(modelDecorated.PropertyDecorators["Age"].Enabled == false); Assert.IsFalse(modelDecorated.GetFor(p => p.Name).Visible); modelDecorated.GetFor(p => p.Name).Visible = true; Assert.IsTrue(modelDecorated.GetFor(p => p.Name).Visible); }
public void InitClassWithMember_WithModelDecorators_ReturnDecoratorsForClassAndPropertiesDescendantsIncluded() { var decorationDefinition = ModelDecorators.Init <ClassWithMember, Decorators>(); var modelDecorated = decorationDefinition(classWithMember); Assert.IsTrue(modelDecorated.Decorators.Enabled == false); Assert.IsTrue(modelDecorated.Decorators.Visible == false); Assert.IsTrue(modelDecorated.PropertyDecorators.Count == 7); Assert.IsTrue(modelDecorated.PropertyDecorators["CreatedOn"].Enabled == false); Assert.IsTrue(modelDecorated.PropertyDecorators["SimpleClass"].Enabled == false); Assert.IsTrue(modelDecorated.PropertyDecorators["SimpleClass.Name"].Enabled == false); Assert.IsFalse(modelDecorated.GetFor(p => p.SimpleClass.Name).Visible); modelDecorated.GetFor(p => p.SimpleClass.Name).Visible = true; Assert.IsTrue(modelDecorated.GetFor(p => p.SimpleClass.Name).Visible); }
public void Setup() { simpleClass = new SimpleClass() { Age = 62, Name = "Me" }; classWithMember = new ClassWithMember() { SimpleClass = simpleClass, CreatedOn = DateTime.Now }; classWithCollection = new ClassWithCollection() { Id = Guid.NewGuid(), SimpleClasses = new List <SimpleClass>(new[] { simpleClass }) }; decorationDefinition = ModelDecorators.Init <ClassWithMember, Decorators>(); decorationCollectionDefinition = ModelDecorators.Init <ClassWithCollection, Decorators>(); }
private void DefineDecorationsOnShip() { modelDecorationDefinition = ModelDecorators.Init <Ship, ExtendedDecorators>() .OnModelIfThenElse(WhenThereIsStock(), EnableDisembark(), DisableDisembark()) .OnModelPropIfThenElse(s => s.NextInRowToApproveDisembark() is Captain, s => s.Captain, prp => prp.Class = classShow, prp => prp.Class = classHide) .OnModelPropIfThenElse(s => s.Status == DisembarkStatus.WaitOnSteerman, s => s.Steersman, prp => prp.Class = classShow, prp => prp.Class = classHide) .OnModelPropWhen(s => s.Status >= DisembarkStatus.DisembarkCanStart && s.Status < DisembarkStatus.DisembarkFinished , s => s.Status , dec => dec.Visible = true); modelDecorated = modelDecorationDefinition(ship); }