Exemplo n.º 1
0
        public void GenerateDescription__AllPropertiesGroupedCorrectly()
        {
            var joinedEntities = new[] { PropInfo.FromPropertyExpression <Order>(v => v.Customer) };
            var components     = new[] {
                PropInfo.FromPropertyExpression <Order>(v => v.PaymentInfo),
                PropInfo.FromPropertyExpression <Order>(v => v.AuditInfo)
            };
            var simpleProps = new[] {
                PropInfo.FromPropertyExpression <Order>(v => v.Id),
                PropInfo.FromPropertyExpression <Order>(v => v.ItemsCount),
                PropInfo.FromPropertyExpression <Order>(v => v.Note),
                PropInfo.FromPropertyExpression <Order>(v => v.Type),
                PropInfo.FromPropertyExpression <Order>(v => v.OrderDate),
                PropInfo.FromPropertyExpression <Order>(v => v.TotalPrice),
                PropInfo.FromPropertyExpression <Order>(v => v.Version),
            };

            var modelDescription = PersistenceModelPropertiesDescriptionGenerator.GenerateDescription(typeof(Order));

            modelDescription.Should(Be.Not.Null);

            modelDescription.ComponentProperties.Count.Should(Be.EqualTo(components.Length));
            modelDescription.JoinedModels.Count.Should(Be.EqualTo(joinedEntities.Length));
            modelDescription.SimpleProperties.Count.Should(Be.EqualTo(simpleProps.Length));

            modelDescription.ComponentProperties.Should(Be.EquivalentTo(components));
            modelDescription.JoinedModels.Should(Be.EquivalentTo(joinedEntities));
            modelDescription.SimpleProperties.Should(Be.EquivalentTo(simpleProps));
        }
Exemplo n.º 2
0
 static ViewModelsReader()
 {
     // TODO: this could be handled by IoC container not class itself. But maybe it's beter to store this information in static fields? Think about.
     persistenceModelDescription    = PersistenceModelPropertiesDescriptionGenerator.GenerateDescription(typeof(TPersistenceModel));
     viewModelToPersistenceModelMap = ViewModelToPersistenceModelPropertyNamesMapsGenerator.Generate(
         typeof(TGridModel), persistenceModelDescription);
     projectionsList = ProjectionsGenerator.GenerateProjectionsList(viewModelToPersistenceModelMap);
 }