Files
DynamORM/docs/test-driven-examples.md
2026-02-26 07:49:08 +01:00

71 lines
1.9 KiB
Markdown

# Test-Driven Examples
This page maps concrete examples to test files so behavior can be verified quickly.
## Dynamic Select and Aggregates
Source: `DynamORM.Tests/Select/DynamicAccessTests.cs`
- `Count/Min/Max/Avg/Sum/Scalar`
- `First/Last/Single`
- `IN`, `LIKE`, `BETWEEN`, comparison operators
- ad-hoc column expressions and aliases
## Typed Access and Mapping
Source: `DynamORM.Tests/Select/TypedAccessTests.cs`
- `Query(type: typeof(T))`
- `Execute<T>()`
- projection with `MapEnumerable<T>()`
- table mapping and strongly typed expressions
## SQL Parser and CommandText Expectations
Source: `DynamORM.Tests/Select/ParserTests.cs`
- `From` variants (`schema.table`, aliasing, string forms)
- join expressions and join kind helpers
- subquery embedding
- `NoLock()` translation
- deterministic SQL text generation checks
## Data Modification
Source: `DynamORM.Tests/Modify/DynamicModificationTests.cs`
- insert via named args, anonymous object, mapped class, plain class
- update via key/object/where
- delete via key/object/where
## Schema Variants
Sources:
- `DynamORM.Tests/Modify/DynamicTypeSchemaModificationTests.cs`
- `DynamORM.Tests/Modify/DynamicNoSchemaModificationTests.cs`
- `DynamORM.Tests/Select/DynamicTypeSchemaAccessTests.cs`
- `DynamORM.Tests/Select/DynamicNoSchemaAccessTests.cs`
Use these to validate behavior with and without schema support.
## Resource and Pooling Semantics
Source: `DynamORM.Tests/Helpers/PoolingTests.cs`
- command invalidation after database disposal
- transaction rollback behavior during disposal
## Validation
Source: `DynamORM.Tests/Helpers/Validation/ObjectValidationTest.cs`
- rule-based object validation with `RequiredAttribute`
- array element-level validation
## Dynamic Parser (Helper Layer)
Source: `DynamORM.Tests/Helpers/Dynamic/DynamicParserTests.cs`
Covers lower-level parser behavior used by fluent lambda parsing.