[{"data":1,"prerenderedAt":1879},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Fadvanced\u002Fspecimen-pipeline":287,"docs:\u002Fdocs\u002Fadvanced\u002Fspecimen-pipeline-surround":1876},[4],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","docs",[9,33,63,85,99,137,154],{"title":10,"badge":11,"icon":12,"path":13,"stem":14,"children":15,"page":32},"Get started",null,"i-lucide-rocket","\u002Fdocs\u002Fget-started","docs\u002F1.get-started",[16,20,24,28],{"title":17,"path":18,"stem":19,"badge":11},"Introduction","\u002Fdocs\u002Fget-started\u002Fintroduction","docs\u002F1.get-started\u002F1.introduction",{"title":21,"path":22,"stem":23,"badge":11},"Installation","\u002Fdocs\u002Fget-started\u002Finstallation","docs\u002F1.get-started\u002F2.installation",{"title":25,"path":26,"stem":27,"badge":11},"Your first test","\u002Fdocs\u002Fget-started\u002Ffirst-test","docs\u002F1.get-started\u002F3.first-test",{"title":29,"path":30,"stem":31,"badge":11},"Refactoring a test","\u002Fdocs\u002Fget-started\u002Frefactoring-a-test","docs\u002F1.get-started\u002F4.refactoring-a-test",false,{"title":34,"badge":11,"icon":35,"path":36,"stem":37,"children":38,"page":32},"Fundamentals","i-lucide-layers","\u002Fdocs\u002Ffundamentals","docs\u002F2.fundamentals",[39,43,47,51,55,59],{"title":40,"path":41,"stem":42,"badge":11},"Fixture and Create","\u002Fdocs\u002Ffundamentals\u002Ffixture-and-create","docs\u002F2.fundamentals\u002F1.fixture-and-create",{"title":44,"path":45,"stem":46,"badge":11},"Build DSL","\u002Fdocs\u002Ffundamentals\u002Fbuild-dsl","docs\u002F2.fundamentals\u002F2.build-dsl",{"title":48,"path":49,"stem":50,"badge":11},"Customizations","\u002Fdocs\u002Ffundamentals\u002Fcustomizations","docs\u002F2.fundamentals\u002F3.customizations",{"title":52,"path":53,"stem":54,"badge":11},"Specimen graphs","\u002Fdocs\u002Ffundamentals\u002Fspecimen-graphs","docs\u002F2.fundamentals\u002F4.specimen-graphs",{"title":56,"path":57,"stem":58,"badge":11},"Behaviors","\u002Fdocs\u002Ffundamentals\u002Fbehaviors","docs\u002F2.fundamentals\u002F5.behaviors",{"title":60,"path":61,"stem":62,"badge":11},"Customizations catalog","\u002Fdocs\u002Ffundamentals\u002Fcustomizations-catalog","docs\u002F2.fundamentals\u002F6.customizations-catalog",{"title":64,"badge":11,"icon":65,"path":66,"stem":67,"children":68,"page":32},"How-to guides","i-lucide-book-open","\u002Fdocs\u002Fhow-to","docs\u002F3.how-to",[69,73,77,81],{"title":70,"path":71,"stem":72,"badge":11},"Collections","\u002Fdocs\u002Fhow-to\u002Fcollections","docs\u002F3.how-to\u002F1.collections",{"title":74,"path":75,"stem":76,"badge":11},"Circular references","\u002Fdocs\u002Fhow-to\u002Fcircular-refs","docs\u002F3.how-to\u002F2.circular-refs",{"title":78,"path":79,"stem":80,"badge":11},"Register, Freeze, and Inject","\u002Fdocs\u002Fhow-to\u002Fregister-freeze-inject","docs\u002F3.how-to\u002F3.register-freeze-inject",{"title":82,"path":83,"stem":84,"badge":11},"Data annotations","\u002Fdocs\u002Fhow-to\u002Fdata-annotations","docs\u002F3.how-to\u002F4.data-annotations",{"title":86,"badge":11,"icon":87,"path":88,"stem":89,"children":90,"page":32},"Extensions","i-lucide-puzzle","\u002Fdocs\u002Fextensions","docs\u002F4.extensions",[91,95],{"title":92,"path":93,"stem":94,"badge":11},"Idioms","\u002Fdocs\u002Fextensions\u002Fidioms","docs\u002F4.extensions\u002F1.idioms",{"title":96,"path":97,"stem":98,"badge":11},"Seed extensions","\u002Fdocs\u002Fextensions\u002Fseed-extensions","docs\u002F4.extensions\u002F2.seed-extensions",{"title":100,"badge":11,"icon":101,"path":102,"stem":103,"children":104,"page":32},"Integrations","i-lucide-plug","\u002Fdocs\u002Fintegrations","docs\u002F5.integrations",[105,109,113,117,121,125,129],{"title":106,"path":107,"stem":108,"badge":11},"Overview","\u002Fdocs\u002Fintegrations\u002Foverview","docs\u002F5.integrations\u002F00.overview",{"title":110,"path":111,"stem":112,"badge":11},"xUnit.net 3","\u002Fdocs\u002Fintegrations\u002Fxunit3","docs\u002F5.integrations\u002F01.xunit3",{"title":114,"path":115,"stem":116,"badge":11},"AutoMoq","\u002Fdocs\u002Fintegrations\u002Fautomoq","docs\u002F5.integrations\u002F02.automoq",{"title":118,"path":119,"stem":120,"badge":11},"NUnit 4","\u002Fdocs\u002Fintegrations\u002Fnunit4","docs\u002F5.integrations\u002F04.nunit4",{"title":122,"path":123,"stem":124,"badge":11},"AutoNSubstitute","\u002Fdocs\u002Fintegrations\u002Fautonsubstitute","docs\u002F5.integrations\u002F06.autonsubstitute",{"title":126,"path":127,"stem":128,"badge":11},"AutoFakeItEasy","\u002Fdocs\u002Fintegrations\u002Fautofakeiteasy","docs\u002F5.integrations\u002F09.autofakeiteasy",{"title":130,"path":131,"stem":132,"badge":133},"TUnit","\u002Fdocs\u002Fintegrations\u002Ftunit","docs\u002F5.integrations\u002F10.tunit",{"label":134,"color":135,"variant":136},"Preview","warning","subtle",{"title":138,"badge":11,"icon":139,"path":140,"stem":141,"children":142,"page":32},"Advanced","i-lucide-cog","\u002Fdocs\u002Fadvanced","docs\u002F6.advanced",[143,146,150],{"title":106,"path":144,"stem":145,"badge":11},"\u002Fdocs\u002Fadvanced\u002Foverview","docs\u002F6.advanced\u002F0.overview",{"title":147,"path":148,"stem":149,"badge":11},"Specimen pipeline","\u002Fdocs\u002Fadvanced\u002Fspecimen-pipeline","docs\u002F6.advanced\u002F1.specimen-pipeline",{"title":151,"path":152,"stem":153,"badge":11},"Specimen builders and specifications","\u002Fdocs\u002Fadvanced\u002Fspecimen-builders-and-specifications","docs\u002F6.advanced\u002F2.specimen-builders-and-specifications",{"title":155,"badge":11,"icon":156,"path":157,"stem":158,"children":159,"page":32},"Reference","i-lucide-library","\u002Fdocs\u002Freference","docs\u002F7.reference",[160,164,168,172,176,180,184],{"title":161,"path":162,"stem":163,"badge":11},"NuGet packages","\u002Fdocs\u002Freference\u002Fpackages","docs\u002F7.reference\u002F1.packages",{"title":165,"path":166,"stem":167,"badge":11},"API reference","\u002Fdocs\u002Freference\u002Fapi-reference","docs\u002F7.reference\u002F2.api-reference",{"title":169,"path":170,"stem":171,"badge":11},"Cheat sheet","\u002Fdocs\u002Freference\u002Fcheat-sheet","docs\u002F7.reference\u002F3.cheat-sheet",{"title":173,"path":174,"stem":175,"badge":11},"FAQ","\u002Fdocs\u002Freference\u002Ffaq","docs\u002F7.reference\u002F4.faq",{"title":177,"path":178,"stem":179,"badge":11},"Compatibility","\u002Fdocs\u002Freference\u002Fcompatibility","docs\u002F7.reference\u002F5.compatibility",{"title":181,"path":182,"stem":183,"badge":11},"v4 to v5 migration","\u002Fdocs\u002Freference\u002Fv4-to-v5-migration","docs\u002F7.reference\u002F6.v4-to-v5-migration",{"title":185,"path":186,"stem":187,"badge":11},"Previous versions","\u002Fdocs\u002Freference\u002Fprevious-versions","docs\u002F7.reference\u002F7.previous-versions",{"defaultPath":189,"packages":190},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1",[191,204,210,215,221,227,232,238,243,248,253,258,264,271,276,281],{"id":192,"name":193,"nugetId":193,"primary":194,"versions":195,"defaultVersion":197,"defaultVersionSegment":198},"autofixture","AutoFixture",true,[196,200],{"version":197,"versionSegment":198,"line":199,"isLatest":194},"5.0.0-rc.1","5-0-0-rc-1","v5",{"version":201,"versionSegment":202,"line":203,"isLatest":32},"4.18.1","4-18-1","v4",{"id":205,"name":206,"nugetId":206,"primary":32,"versions":207,"defaultVersion":197,"defaultVersionSegment":198},"autofakeiteasy","AutoFixture.AutoFakeItEasy",[208,209],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":211,"name":212,"nugetId":212,"primary":32,"versions":213,"defaultVersion":201,"defaultVersionSegment":202},"autofoq","AutoFixture.AutoFoq",[214],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":216,"name":217,"nugetId":217,"primary":32,"versions":218,"defaultVersion":197,"defaultVersionSegment":198},"automoq","AutoFixture.AutoMoq",[219,220],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":222,"name":223,"nugetId":223,"primary":32,"versions":224,"defaultVersion":197,"defaultVersionSegment":198},"autonsubstitute","AutoFixture.AutoNSubstitute",[225,226],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":228,"name":229,"nugetId":229,"primary":32,"versions":230,"defaultVersion":201,"defaultVersionSegment":202},"autorhinomocks","AutoFixture.AutoRhinoMocks",[231],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":233,"name":234,"nugetId":234,"primary":32,"versions":235,"defaultVersion":197,"defaultVersionSegment":198},"idioms","AutoFixture.Idioms",[236,237],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":239,"name":240,"nugetId":240,"primary":32,"versions":241,"defaultVersion":201,"defaultVersionSegment":202},"idioms-fscheck","AutoFixture.Idioms.FsCheck",[242],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":244,"name":245,"nugetId":245,"primary":32,"versions":246,"defaultVersion":201,"defaultVersionSegment":202},"nunit2","AutoFixture.NUnit2",[247],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":249,"name":250,"nugetId":250,"primary":32,"versions":251,"defaultVersion":201,"defaultVersionSegment":202},"nunit3","AutoFixture.NUnit3",[252],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":254,"name":255,"nugetId":255,"primary":32,"versions":256,"defaultVersion":197,"defaultVersionSegment":198},"nunit4","AutoFixture.NUnit4",[257],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"id":259,"name":260,"nugetId":260,"primary":32,"versions":261,"defaultVersion":197,"defaultVersionSegment":198},"seedextensions","AutoFixture.SeedExtensions",[262,263],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":265,"name":266,"nugetId":266,"primary":32,"versions":267,"defaultVersion":269,"defaultVersionSegment":270},"tunit","AutoFixture.TUnit",[268],{"version":269,"versionSegment":270,"line":203,"isLatest":194},"0.1.0-preview0001","0-1-0-preview0001",{"id":272,"name":273,"nugetId":273,"primary":32,"versions":274,"defaultVersion":201,"defaultVersionSegment":202},"xunit","AutoFixture.xUnit",[275],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":277,"name":278,"nugetId":278,"primary":32,"versions":279,"defaultVersion":201,"defaultVersionSegment":202},"xunit2","AutoFixture.xUnit2",[280],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":282,"name":283,"nugetId":283,"primary":32,"versions":284,"defaultVersion":197,"defaultVersionSegment":198},"xunit3","AutoFixture.Xunit3",[285],{"version":197,"versionSegment":198,"line":199,"isLatest":194},[],{"id":288,"title":147,"badge":11,"body":289,"description":1871,"extension":1872,"meta":1873,"navigation":194,"path":148,"seo":1874,"stem":149,"updated":11,"__hash__":1875},"docs\u002Fdocs\u002F6.advanced\u002F1.specimen-pipeline.md",{"type":290,"value":291,"toc":1855},"minimark",[292,313,318,327,334,396,417,421,430,436,583,592,710,730,745,1005,1016,1031,1034,1041,1053,1266,1272,1275,1285,1288,1443,1446,1453,1457,1467,1471,1477,1521,1547,1551,1558,1565,1583,1589,1593,1600,1637,1651,1655,1672,1676,1782,1788,1792,1816,1820,1851],[293,294,295,296,300,301,305,306,309,310,312],"p",{},"AutoFixture is built around an extensible ",[297,298,299],"strong",{},"kernel",". Most tests use the ",[302,303,304],"code",{},"Fixture"," class — a façade over that kernel — to create anonymous values (specimens). The kernel lives in the ",[302,307,308],{},"AutoFixture.Kernel"," namespace; everyday tests usually only need ",[302,311,193],{},".",[314,315,317],"h2",{"id":316},"fixture-layout","Fixture layout",[293,319,320,322,323,326],{},[302,321,304],{}," packages kernel components in a fixed order. When you call ",[302,324,325],{},"Create\u003CT>()",", the request flows through these layers:",[328,329],"img",{"src":330,"alt":331,"className":332},"\u002Fimages\u002Ffixture-pipeline.png","Fixture pipeline: behaviors wrap customizations, engine, and residue collectors",[333],"fixture-pipeline-diagram",[335,336,337,350],"table",{},[338,339,340],"thead",{},[341,342,343,347],"tr",{},[344,345,346],"th",{},"Layer",[344,348,349],{},"Role",[351,352,353,363,376,386],"tbody",{},[341,354,355,360],{},[356,357,358],"td",{},[297,359,56],{},[356,361,362],{},"Decorators that wrap the whole pipeline — for example recursion guarding and tracing",[341,364,365,369],{},[356,366,367],{},[297,368,48],{},[356,370,371,372,375],{},"Your ",[302,373,374],{},"ISpecimenBuilder"," nodes; first match wins, before the default engine",[341,377,378,383],{},[356,379,380],{},[297,381,382],{},"Engine",[356,384,385],{},"Built-in specimen builders for primitives, collections, reflection-based construction, and auto-properties",[341,387,388,393],{},[356,389,390],{},[297,391,392],{},"Residue collectors",[356,394,395],{},"Fallback builders for requests the engine cannot satisfy — for example interfaces (AutoMoq mocks them here)",[293,397,398,399,401,402,404,405,408,409,412,413,416],{},"A default ",[302,400,304],{}," starts with an empty ",[302,403,48],{}," collection. The middle ",[297,406,407],{},"engine"," block is wired in the constructor and handles well-known types such as ",[302,410,411],{},"int"," and ",[302,414,415],{},"string",", plus complex types via reflection.",[418,419,48],"h3",{"id":420},"customizations",[293,422,423,424,426,427,429],{},"Add ",[302,425,374],{}," instances to ",[302,428,48],{}," to intercept requests before the engine runs. The first builder that returns a specimen wins; the rest are skipped.",[293,431,432,435],{},[297,433,434],{},"Register"," — replace creation for a type:",[437,438,443],"pre",{"className":439,"code":440,"language":441,"meta":442,"style":442},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","var fixture = new Fixture();\nfixture.Register(() => new ClientDto { Name = \"registered\", Age = 30 });\n\nvar client = fixture.Create\u003CClientDto>();\n\nAssert.Equal(\"registered\", client.Name);\n","csharp","",[302,444,445,472,518,524,550,555],{"__ignoreMap":442},[446,447,450,454,458,462,465,469],"span",{"class":448,"line":449},"line",1,[446,451,453],{"class":452},"stxUP","var",[446,455,457],{"class":456},"sswaR"," fixture",[446,459,461],{"class":460},"s_Yst"," = ",[446,463,464],{"class":452},"new",[446,466,468],{"class":467},"sopvc"," Fixture",[446,470,471],{"class":460},"();\n",[446,473,475,478,480,483,486,488,491,494,497,499,503,506,509,511,515],{"class":448,"line":474},2,[446,476,477],{"class":456},"fixture",[446,479,312],{"class":460},[446,481,434],{"class":482},"swoLU",[446,484,485],{"class":460},"(() => ",[446,487,464],{"class":452},[446,489,490],{"class":467}," ClientDto",[446,492,493],{"class":460}," { ",[446,495,496],{"class":456},"Name",[446,498,461],{"class":460},[446,500,502],{"class":501},"sFD8J","\"registered\"",[446,504,505],{"class":460},", ",[446,507,508],{"class":456},"Age",[446,510,461],{"class":460},[446,512,514],{"class":513},"s-S-M","30",[446,516,517],{"class":460}," });\n",[446,519,521],{"class":448,"line":520},3,[446,522,523],{"emptyLinePlaceholder":194},"\n",[446,525,527,529,532,534,536,538,541,544,547],{"class":448,"line":526},4,[446,528,453],{"class":452},[446,530,531],{"class":456}," client",[446,533,461],{"class":460},[446,535,477],{"class":456},[446,537,312],{"class":460},[446,539,540],{"class":482},"Create",[446,542,543],{"class":460},"\u003C",[446,545,546],{"class":467},"ClientDto",[446,548,549],{"class":460},">();\n",[446,551,553],{"class":448,"line":552},5,[446,554,523],{"emptyLinePlaceholder":194},[446,556,558,561,563,566,569,571,573,576,578,580],{"class":448,"line":557},6,[446,559,560],{"class":456},"Assert",[446,562,312],{"class":460},[446,564,565],{"class":482},"Equal",[446,567,568],{"class":460},"(",[446,570,502],{"class":501},[446,572,505],{"class":460},[446,574,575],{"class":456},"client",[446,577,312],{"class":460},[446,579,496],{"class":456},[446,581,582],{"class":460},");\n",[293,584,585,588,589,591],{},[297,586,587],{},"Customize"," — adjust how a type is built on every ",[302,590,325],{},":",[437,593,595],{"className":439,"code":594,"language":441,"meta":442,"style":442},"var fixture = new Fixture();\nfixture.Customize\u003CClientDto>(composer => composer.With(dto => dto.Age, 21));\n\nvar client = fixture.Create\u003CClientDto>();\n\nAssert.Equal(21, client.Age);\n",[302,596,597,611,660,664,684,688],{"__ignoreMap":442},[446,598,599,601,603,605,607,609],{"class":448,"line":449},[446,600,453],{"class":452},[446,602,457],{"class":456},[446,604,461],{"class":460},[446,606,464],{"class":452},[446,608,468],{"class":467},[446,610,471],{"class":460},[446,612,613,615,617,619,621,623,626,629,632,634,636,639,641,644,646,648,650,652,654,657],{"class":448,"line":474},[446,614,477],{"class":456},[446,616,312],{"class":460},[446,618,587],{"class":482},[446,620,543],{"class":460},[446,622,546],{"class":467},[446,624,625],{"class":460},">(",[446,627,628],{"class":456},"composer",[446,630,631],{"class":460}," => ",[446,633,628],{"class":456},[446,635,312],{"class":460},[446,637,638],{"class":482},"With",[446,640,568],{"class":460},[446,642,643],{"class":456},"dto",[446,645,631],{"class":460},[446,647,643],{"class":456},[446,649,312],{"class":460},[446,651,508],{"class":456},[446,653,505],{"class":460},[446,655,656],{"class":513},"21",[446,658,659],{"class":460},"));\n",[446,661,662],{"class":448,"line":520},[446,663,523],{"emptyLinePlaceholder":194},[446,665,666,668,670,672,674,676,678,680,682],{"class":448,"line":526},[446,667,453],{"class":452},[446,669,531],{"class":456},[446,671,461],{"class":460},[446,673,477],{"class":456},[446,675,312],{"class":460},[446,677,540],{"class":482},[446,679,543],{"class":460},[446,681,546],{"class":467},[446,683,549],{"class":460},[446,685,686],{"class":448,"line":552},[446,687,523],{"emptyLinePlaceholder":194},[446,689,690,692,694,696,698,700,702,704,706,708],{"class":448,"line":557},[446,691,560],{"class":456},[446,693,312],{"class":460},[446,695,565],{"class":482},[446,697,568],{"class":460},[446,699,656],{"class":513},[446,701,505],{"class":460},[446,703,575],{"class":456},[446,705,312],{"class":460},[446,707,508],{"class":456},[446,709,582],{"class":460},[293,711,712,713,412,715,717,718,721,722,726,727,312],{},"Both ",[302,714,434],{},[302,716,587],{}," append builders to ",[302,719,720],{},"fixture.Customizations",". For reusable setup across tests, implement ",[723,724,725],"a",{"href":61},"ICustomization"," and call ",[302,728,729],{},"fixture.Customize(new MyCustomization())",[293,731,732,735,736,738,739,741,742,744],{},[297,733,734],{},"Add a specimen builder manually"," — implement ",[302,737,374],{}," and append it when ",[302,740,434],{}," or ",[302,743,587],{}," are not enough:",[437,746,748],{"className":439,"code":747,"language":441,"meta":442,"style":442},"var fixture = new Fixture();\nfixture.Customizations.Add(new FixedIntBuilder());\n\nvar value = fixture.Create\u003Cint>();\n\nAssert.Equal(42, value);\n\npublic sealed class FixedIntBuilder : ISpecimenBuilder\n{\n    public object Create(object request, ISpecimenContext context)\n    {\n        if (request is not Type type || type != typeof(int))\n        {\n            return NoSpecimen.Instance;\n        }\n\n        return 42;\n    }\n}\n",[302,749,750,764,787,791,812,816,836,841,861,867,898,904,948,954,971,977,982,993,999],{"__ignoreMap":442},[446,751,752,754,756,758,760,762],{"class":448,"line":449},[446,753,453],{"class":452},[446,755,457],{"class":456},[446,757,461],{"class":460},[446,759,464],{"class":452},[446,761,468],{"class":467},[446,763,471],{"class":460},[446,765,766,768,770,772,774,777,779,781,784],{"class":448,"line":474},[446,767,477],{"class":456},[446,769,312],{"class":460},[446,771,48],{"class":456},[446,773,312],{"class":460},[446,775,776],{"class":482},"Add",[446,778,568],{"class":460},[446,780,464],{"class":452},[446,782,783],{"class":467}," FixedIntBuilder",[446,785,786],{"class":460},"());\n",[446,788,789],{"class":448,"line":520},[446,790,523],{"emptyLinePlaceholder":194},[446,792,793,795,798,800,802,804,806,808,810],{"class":448,"line":526},[446,794,453],{"class":452},[446,796,797],{"class":456}," value",[446,799,461],{"class":460},[446,801,477],{"class":456},[446,803,312],{"class":460},[446,805,540],{"class":482},[446,807,543],{"class":460},[446,809,411],{"class":452},[446,811,549],{"class":460},[446,813,814],{"class":448,"line":552},[446,815,523],{"emptyLinePlaceholder":194},[446,817,818,820,822,824,826,829,831,834],{"class":448,"line":557},[446,819,560],{"class":456},[446,821,312],{"class":460},[446,823,565],{"class":482},[446,825,568],{"class":460},[446,827,828],{"class":513},"42",[446,830,505],{"class":460},[446,832,833],{"class":456},"value",[446,835,582],{"class":460},[446,837,839],{"class":448,"line":838},7,[446,840,523],{"emptyLinePlaceholder":194},[446,842,844,847,850,853,855,858],{"class":448,"line":843},8,[446,845,846],{"class":452},"public",[446,848,849],{"class":452}," sealed",[446,851,852],{"class":452}," class",[446,854,783],{"class":467},[446,856,857],{"class":460}," : ",[446,859,860],{"class":467},"ISpecimenBuilder\n",[446,862,864],{"class":448,"line":863},9,[446,865,866],{"class":460},"{\n",[446,868,870,873,876,879,881,884,887,889,892,895],{"class":448,"line":869},10,[446,871,872],{"class":452},"    public",[446,874,875],{"class":452}," object",[446,877,878],{"class":482}," Create",[446,880,568],{"class":460},[446,882,883],{"class":452},"object",[446,885,886],{"class":456}," request",[446,888,505],{"class":460},[446,890,891],{"class":467},"ISpecimenContext",[446,893,894],{"class":456}," context",[446,896,897],{"class":460},")\n",[446,899,901],{"class":448,"line":900},11,[446,902,903],{"class":460},"    {\n",[446,905,907,911,914,917,920,923,926,929,932,935,938,941,943,945],{"class":448,"line":906},12,[446,908,910],{"class":909},"smUd-","        if",[446,912,913],{"class":460}," (",[446,915,916],{"class":456},"request",[446,918,919],{"class":452}," is",[446,921,922],{"class":452}," not",[446,924,925],{"class":467}," Type",[446,927,928],{"class":456}," type",[446,930,931],{"class":460}," || ",[446,933,934],{"class":456},"type",[446,936,937],{"class":460}," != ",[446,939,940],{"class":452},"typeof",[446,942,568],{"class":460},[446,944,411],{"class":452},[446,946,947],{"class":460},"))\n",[446,949,951],{"class":448,"line":950},13,[446,952,953],{"class":460},"        {\n",[446,955,957,960,963,965,968],{"class":448,"line":956},14,[446,958,959],{"class":909},"            return",[446,961,962],{"class":456}," NoSpecimen",[446,964,312],{"class":460},[446,966,967],{"class":456},"Instance",[446,969,970],{"class":460},";\n",[446,972,974],{"class":448,"line":973},15,[446,975,976],{"class":460},"        }\n",[446,978,980],{"class":448,"line":979},16,[446,981,523],{"emptyLinePlaceholder":194},[446,983,985,988,991],{"class":448,"line":984},17,[446,986,987],{"class":909},"        return",[446,989,990],{"class":513}," 42",[446,992,970],{"class":460},[446,994,996],{"class":448,"line":995},18,[446,997,998],{"class":460},"    }\n",[446,1000,1002],{"class":448,"line":1001},19,[446,1003,1004],{"class":460},"}\n",[293,1006,1007,1008,1011,1012,1015],{},"Return ",[302,1009,1010],{},"NoSpecimen.Instance"," when your builder does not handle the request — the pipeline continues to the next builder. Any other return value (including ",[302,1013,1014],{},"null",") satisfies the request.",[293,1017,1018,1019,1021,1022,505,1025,1028,1029,312],{},"See ",[723,1020,48],{"href":49}," for ",[302,1023,1024],{},"FromFactory",[302,1026,1027],{},"Without",", and other composer methods. For specification-gated builders, see ",[723,1030,151],{"href":152},[418,1032,392],{"id":1033},"residue-collectors",[293,1035,1036,1037,1040],{},"Some requests cannot be satisfied by the engine alone — for example an interface type has no public constructor. After the engine declines, builders in ",[302,1038,1039],{},"ResidueCollectors"," get a chance to handle those leftovers before AutoFixture throws.",[293,1042,1043,1046,1047,1049,1050,1052],{},[297,1044,1045],{},"Add a residue collector manually"," — same ",[302,1048,374],{}," contract, but registered on ",[302,1051,1039],{}," so it runs only after the engine:",[437,1054,1056],{"className":439,"code":1055,"language":441,"meta":442,"style":442},"var fixture = new Fixture();\nfixture.ResidueCollectors.Add(new InMemoryOrderRepositoryBuilder());\n\nvar repository = fixture.Create\u003CIOrderRepository>();\n\nAssert.IsType\u003CInMemoryOrderRepository>(repository);\n\npublic sealed class InMemoryOrderRepositoryBuilder : ISpecimenBuilder\n{\n    public object Create(object request, ISpecimenContext context)\n    {\n        if (request is not Type type || type != typeof(IOrderRepository))\n        {\n            return NoSpecimen.Instance;\n        }\n\n        return new InMemoryOrderRepository();\n    }\n}\n",[302,1057,1058,1072,1093,1097,1119,1123,1144,1148,1162,1166,1188,1192,1222,1226,1238,1242,1246,1258,1262],{"__ignoreMap":442},[446,1059,1060,1062,1064,1066,1068,1070],{"class":448,"line":449},[446,1061,453],{"class":452},[446,1063,457],{"class":456},[446,1065,461],{"class":460},[446,1067,464],{"class":452},[446,1069,468],{"class":467},[446,1071,471],{"class":460},[446,1073,1074,1076,1078,1080,1082,1084,1086,1088,1091],{"class":448,"line":474},[446,1075,477],{"class":456},[446,1077,312],{"class":460},[446,1079,1039],{"class":456},[446,1081,312],{"class":460},[446,1083,776],{"class":482},[446,1085,568],{"class":460},[446,1087,464],{"class":452},[446,1089,1090],{"class":467}," InMemoryOrderRepositoryBuilder",[446,1092,786],{"class":460},[446,1094,1095],{"class":448,"line":520},[446,1096,523],{"emptyLinePlaceholder":194},[446,1098,1099,1101,1104,1106,1108,1110,1112,1114,1117],{"class":448,"line":526},[446,1100,453],{"class":452},[446,1102,1103],{"class":456}," repository",[446,1105,461],{"class":460},[446,1107,477],{"class":456},[446,1109,312],{"class":460},[446,1111,540],{"class":482},[446,1113,543],{"class":460},[446,1115,1116],{"class":467},"IOrderRepository",[446,1118,549],{"class":460},[446,1120,1121],{"class":448,"line":552},[446,1122,523],{"emptyLinePlaceholder":194},[446,1124,1125,1127,1129,1132,1134,1137,1139,1142],{"class":448,"line":557},[446,1126,560],{"class":456},[446,1128,312],{"class":460},[446,1130,1131],{"class":482},"IsType",[446,1133,543],{"class":460},[446,1135,1136],{"class":467},"InMemoryOrderRepository",[446,1138,625],{"class":460},[446,1140,1141],{"class":456},"repository",[446,1143,582],{"class":460},[446,1145,1146],{"class":448,"line":838},[446,1147,523],{"emptyLinePlaceholder":194},[446,1149,1150,1152,1154,1156,1158,1160],{"class":448,"line":843},[446,1151,846],{"class":452},[446,1153,849],{"class":452},[446,1155,852],{"class":452},[446,1157,1090],{"class":467},[446,1159,857],{"class":460},[446,1161,860],{"class":467},[446,1163,1164],{"class":448,"line":863},[446,1165,866],{"class":460},[446,1167,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186],{"class":448,"line":869},[446,1169,872],{"class":452},[446,1171,875],{"class":452},[446,1173,878],{"class":482},[446,1175,568],{"class":460},[446,1177,883],{"class":452},[446,1179,886],{"class":456},[446,1181,505],{"class":460},[446,1183,891],{"class":467},[446,1185,894],{"class":456},[446,1187,897],{"class":460},[446,1189,1190],{"class":448,"line":900},[446,1191,903],{"class":460},[446,1193,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220],{"class":448,"line":906},[446,1195,910],{"class":909},[446,1197,913],{"class":460},[446,1199,916],{"class":456},[446,1201,919],{"class":452},[446,1203,922],{"class":452},[446,1205,925],{"class":467},[446,1207,928],{"class":456},[446,1209,931],{"class":460},[446,1211,934],{"class":456},[446,1213,937],{"class":460},[446,1215,940],{"class":452},[446,1217,568],{"class":460},[446,1219,1116],{"class":467},[446,1221,947],{"class":460},[446,1223,1224],{"class":448,"line":950},[446,1225,953],{"class":460},[446,1227,1228,1230,1232,1234,1236],{"class":448,"line":956},[446,1229,959],{"class":909},[446,1231,962],{"class":456},[446,1233,312],{"class":460},[446,1235,967],{"class":456},[446,1237,970],{"class":460},[446,1239,1240],{"class":448,"line":973},[446,1241,976],{"class":460},[446,1243,1244],{"class":448,"line":979},[446,1245,523],{"emptyLinePlaceholder":194},[446,1247,1248,1250,1253,1256],{"class":448,"line":984},[446,1249,987],{"class":909},[446,1251,1252],{"class":452}," new",[446,1254,1255],{"class":467}," InMemoryOrderRepository",[446,1257,471],{"class":460},[446,1259,1260],{"class":448,"line":995},[446,1261,998],{"class":460},[446,1263,1264],{"class":448,"line":1001},[446,1265,1004],{"class":460},[293,1267,1268,1269,1271],{},"Residue collectors suit abstractions the engine cannot construct — interfaces, abstract classes, delegates. ",[723,1270,114],{"href":115}," adds one that returns Moq mocks; you can add your own test doubles the same way.",[418,1273,56],{"id":1274},"behaviors",[293,1276,1277,1278,412,1281,1284],{},"A behavior is a decorator around the entire pipeline. It can observe or change requests and specimens going in and out. Recursion policies such as ",[302,1279,1280],{},"ThrowingRecursionBehavior",[302,1282,1283],{},"OmitOnRecursionBehavior"," are behaviors.",[293,1286,1287],{},"By default, circular graphs throw. Swap the throwing behavior for one that omits recursive properties:",[437,1289,1291],{"className":439,"code":1290,"language":441,"meta":442,"style":442},"var fixture = new Fixture();\n\nfixture.Behaviors\n    .OfType\u003CThrowingRecursionBehavior>()\n    .ToList()\n    .ForEach(b => fixture.Behaviors.Remove(b));\nfixture.Behaviors.Add(new OmitOnRecursionBehavior());\n\nvar node = fixture.Create\u003CTreeNode>();\n\nAssert.NotNull(node);\n",[302,1292,1293,1307,1311,1320,1335,1345,1376,1397,1401,1423,1427],{"__ignoreMap":442},[446,1294,1295,1297,1299,1301,1303,1305],{"class":448,"line":449},[446,1296,453],{"class":452},[446,1298,457],{"class":456},[446,1300,461],{"class":460},[446,1302,464],{"class":452},[446,1304,468],{"class":467},[446,1306,471],{"class":460},[446,1308,1309],{"class":448,"line":474},[446,1310,523],{"emptyLinePlaceholder":194},[446,1312,1313,1315,1317],{"class":448,"line":520},[446,1314,477],{"class":456},[446,1316,312],{"class":460},[446,1318,1319],{"class":456},"Behaviors\n",[446,1321,1322,1325,1328,1330,1332],{"class":448,"line":526},[446,1323,1324],{"class":460},"    .",[446,1326,1327],{"class":482},"OfType",[446,1329,543],{"class":460},[446,1331,1280],{"class":467},[446,1333,1334],{"class":460},">()\n",[446,1336,1337,1339,1342],{"class":448,"line":552},[446,1338,1324],{"class":460},[446,1340,1341],{"class":482},"ToList",[446,1343,1344],{"class":460},"()\n",[446,1346,1347,1349,1352,1354,1357,1359,1361,1363,1365,1367,1370,1372,1374],{"class":448,"line":557},[446,1348,1324],{"class":460},[446,1350,1351],{"class":482},"ForEach",[446,1353,568],{"class":460},[446,1355,1356],{"class":456},"b",[446,1358,631],{"class":460},[446,1360,477],{"class":456},[446,1362,312],{"class":460},[446,1364,56],{"class":456},[446,1366,312],{"class":460},[446,1368,1369],{"class":482},"Remove",[446,1371,568],{"class":460},[446,1373,1356],{"class":456},[446,1375,659],{"class":460},[446,1377,1378,1380,1382,1384,1386,1388,1390,1392,1395],{"class":448,"line":838},[446,1379,477],{"class":456},[446,1381,312],{"class":460},[446,1383,56],{"class":456},[446,1385,312],{"class":460},[446,1387,776],{"class":482},[446,1389,568],{"class":460},[446,1391,464],{"class":452},[446,1393,1394],{"class":467}," OmitOnRecursionBehavior",[446,1396,786],{"class":460},[446,1398,1399],{"class":448,"line":843},[446,1400,523],{"emptyLinePlaceholder":194},[446,1402,1403,1405,1408,1410,1412,1414,1416,1418,1421],{"class":448,"line":863},[446,1404,453],{"class":452},[446,1406,1407],{"class":456}," node",[446,1409,461],{"class":460},[446,1411,477],{"class":456},[446,1413,312],{"class":460},[446,1415,540],{"class":482},[446,1417,543],{"class":460},[446,1419,1420],{"class":467},"TreeNode",[446,1422,549],{"class":460},[446,1424,1425],{"class":448,"line":869},[446,1426,523],{"emptyLinePlaceholder":194},[446,1428,1429,1431,1433,1436,1438,1441],{"class":448,"line":900},[446,1430,560],{"class":456},[446,1432,312],{"class":460},[446,1434,1435],{"class":482},"NotNull",[446,1437,568],{"class":460},[446,1439,1440],{"class":456},"node",[446,1442,582],{"class":460},[293,1444,1445],{},"Remove the default behavior before adding a replacement — behaviors stack as decorators, and the throwing policy runs first unless you remove it.",[293,1447,1018,1448,412,1450,1452],{},[723,1449,56],{"href":57},[723,1451,74],{"href":75}," for more policies and xUnit.net 3 attributes.",[314,1454,1456],{"id":1455},"how-a-request-is-resolved","How a request is resolved",[293,1458,1459,1460,1463,1464,1466],{},"The kernel uses a ",[297,1461,1462],{},"chain of responsibility",": many ",[302,1465,374],{}," nodes in sequence; the first one that produces a specimen satisfies the request.",[418,1468,1470],{"id":1469},"requests","Requests",[293,1472,1473,1474,591],{},"Every creation starts with ",[302,1475,1476],{},"ISpecimenBuilder.Create",[437,1478,1480],{"className":439,"code":1479,"language":441,"meta":442,"style":442},"public interface ISpecimenBuilder\n{\n    object Create(object request, ISpecimenContext context);\n}\n",[302,1481,1482,1492,1496,1517],{"__ignoreMap":442},[446,1483,1484,1486,1489],{"class":448,"line":449},[446,1485,846],{"class":452},[446,1487,1488],{"class":452}," interface",[446,1490,1491],{"class":467}," ISpecimenBuilder\n",[446,1493,1494],{"class":448,"line":474},[446,1495,866],{"class":460},[446,1497,1498,1501,1503,1505,1507,1509,1511,1513,1515],{"class":448,"line":520},[446,1499,1500],{"class":452},"    object",[446,1502,878],{"class":482},[446,1504,568],{"class":460},[446,1506,883],{"class":452},[446,1508,886],{"class":456},[446,1510,505],{"class":460},[446,1512,891],{"class":467},[446,1514,894],{"class":456},[446,1516,582],{"class":460},[446,1518,1519],{"class":448,"line":526},[446,1520,1004],{"class":460},[293,1522,1523,1524,1526,1527,1530,1531,1534,1535,1538,1539,1542,1543,1546],{},"A ",[297,1525,916],{}," can be any object. In the usual case it is a ",[302,1528,1529],{},"Type"," — ",[302,1532,1533],{},"Create\u003CClientDto>()"," eventually requests ",[302,1536,1537],{},"typeof(ClientDto)",". Building one object often triggers subsidiary requests for constructor parameters (",[302,1540,1541],{},"ParameterInfo","), properties (",[302,1544,1545],{},"PropertyInfo","), or custom request types.",[418,1548,1550],{"id":1549},"handling-requests","Handling requests",[293,1552,1553,1554,1557],{},"Builders are typically grouped in a ",[302,1555,1556],{},"CompositeSpecimenBuilder",". The composite asks each child in order until one returns a specimen.",[293,1559,1560,1562,1563,591],{},[302,1561,1014],{}," is a valid specimen. To decline a request, a builder must return ",[302,1564,1010],{},[437,1566,1568],{"className":439,"code":1567,"language":441,"meta":442,"style":442},"return NoSpecimen.Instance;\n",[302,1569,1570],{"__ignoreMap":442},[446,1571,1572,1575,1577,1579,1581],{"class":448,"line":449},[446,1573,1574],{"class":909},"return",[446,1576,962],{"class":456},[446,1578,312],{"class":460},[446,1580,967],{"class":456},[446,1582,970],{"class":460},[293,1584,1585,1586,1588],{},"Any other return value — including ",[302,1587,1014],{}," — ends the chain and becomes the result.",[418,1590,1592],{"id":1591},"specimen-context","Specimen context",[293,1594,1595,1597,1598,591],{},[302,1596,540],{}," also receives an ",[302,1599,891],{},[437,1601,1603],{"className":439,"code":1602,"language":441,"meta":442,"style":442},"public interface ISpecimenContext\n{\n    object Resolve(object request);\n}\n",[302,1604,1605,1614,1618,1633],{"__ignoreMap":442},[446,1606,1607,1609,1611],{"class":448,"line":449},[446,1608,846],{"class":452},[446,1610,1488],{"class":452},[446,1612,1613],{"class":467}," ISpecimenContext\n",[446,1615,1616],{"class":448,"line":474},[446,1617,866],{"class":460},[446,1619,1620,1622,1625,1627,1629,1631],{"class":448,"line":520},[446,1621,1500],{"class":452},[446,1623,1624],{"class":482}," Resolve",[446,1626,568],{"class":460},[446,1628,883],{"class":452},[446,1630,886],{"class":456},[446,1632,582],{"class":460},[446,1634,1635],{"class":448,"line":526},[446,1636,1004],{"class":460},[293,1638,1639,1640,1643,1644,1646,1647,1650],{},"A builder uses ",[302,1641,1642],{},"context.Resolve"," to create dependent specimens. For example, a constructor invoker resolves each ",[302,1645,1541],{}," to get argument values, then invokes the constructor. Each ",[302,1648,1649],{},"Resolve"," call runs the full chain again for that sub-request — recursively, until the graph is complete.",[418,1652,1654],{"id":1653},"relays","Relays",[293,1656,1523,1657,1660,1661,1663,1664,1667,1668,1671],{},[297,1658,1659],{},"relay"," is an ",[302,1662,374],{}," that handles one request by issuing a different request to the context and wrapping the result. ",[302,1665,1666],{},"ArrayRelay",", for instance, handles array requests by resolving multiple element specimens and returning an array. Prefer relays over calling ",[302,1669,1670],{},"Activator.CreateInstance"," directly when extending the kernel.",[314,1673,1675],{"id":1674},"relating-this-to-your-tests","Relating this to your tests",[335,1677,1678,1688],{},[338,1679,1680],{},[341,1681,1682,1685],{},[344,1683,1684],{},"What you do",[344,1686,1687],{},"Where it plugs in",[351,1689,1690,1700,1710,1720,1731,1744,1754,1764,1772],{},[341,1691,1692,1697],{},[356,1693,1694],{},[302,1695,1696],{},"fixture.Create\u003CT>()",[356,1698,1699],{},"Enters the pipeline with a type request",[341,1701,1702,1707],{},[356,1703,1704],{},[302,1705,1706],{},"fixture.Register(...)",[356,1708,1709],{},"Adds a customization builder",[341,1711,1712,1717],{},[356,1713,1714],{},[302,1715,1716],{},"fixture.Customize\u003CT>(...)",[356,1718,1719],{},"Adds a typed composer builder to customizations",[341,1721,1722,1726],{},[356,1723,1724],{},[302,1725,729],{},[356,1727,1728,1729],{},"Applies an ",[723,1730,725],{"href":61},[341,1732,1733,1738],{},[356,1734,1735],{},[302,1736,1737],{},"fixture.Customizations.Add(...)",[356,1739,1740,1741,1743],{},"Low-level — append any ",[302,1742,374],{}," before the engine",[341,1745,1746,1751],{},[356,1747,1748],{},[302,1749,1750],{},"fixture.ResidueCollectors.Add(...)",[356,1752,1753],{},"Low-level — append a fallback builder after the engine",[341,1755,1756,1761],{},[356,1757,1758],{},[302,1759,1760],{},"fixture.Behaviors.Add(...)",[356,1762,1763],{},"Wraps the whole graph",[341,1765,1766,1769],{},[356,1767,1768],{},"AutoMoq customization",[356,1770,1771],{},"Adds builders to customizations and residue collectors for interfaces",[341,1773,1774,1779],{},[356,1775,1776],{},[302,1777,1778],{},"fixture.Build\u003CT>()",[356,1780,1781],{},"One-off pipeline for a single specimen (bypasses fixture customizations)",[293,1783,1784,1785,1787],{},"When ",[302,1786,540],{}," fails or behaves unexpectedly, knowing this flow helps: check whether a customization intercepted the request, whether the engine could construct the type, or whether a behavior blocked recursion.",[314,1789,1791],{"id":1790},"next-steps","Next steps",[1793,1794,1795,1800,1804,1808,1812],"ul",{},[1796,1797,1798],"li",{},[723,1799,106],{"href":144},[1796,1801,1802],{},[723,1803,151],{"href":152},[1796,1805,1806],{},[723,1807,52],{"href":53},[1796,1809,1810],{},[723,1811,48],{"href":49},[1796,1813,1814],{},[723,1815,56],{"href":57},[314,1817,1819],{"id":1818},"api","API",[1793,1821,1822,1829,1836,1843],{},[1796,1823,1824],{},[723,1825,1827],{"href":1826},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.fixture",[302,1828,304],{},[1796,1830,1831],{},[723,1832,1834],{"href":1833},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.kernel.ispecimenbuilder",[302,1835,374],{},[1796,1837,1838],{},[723,1839,1841],{"href":1840},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.kernel.ispecimencontext",[302,1842,891],{},[1796,1844,1845],{},[723,1846,1848],{"href":1847},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.kernel.nospecimen",[302,1849,1850],{},"NoSpecimen",[1852,1853,1854],"style",{},"html pre.shiki code .stxUP, html code.shiki .stxUP{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#569CD6}html pre.shiki code .sswaR, html code.shiki .sswaR{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#9CDCFE}html pre.shiki code .s_Yst, html code.shiki .s_Yst{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#D4D4D4}html pre.shiki code .sopvc, html code.shiki .sopvc{--shiki-light:#267F99;--shiki-default:#267F99;--shiki-dark:#4EC9B0}html pre.shiki code .swoLU, html code.shiki .swoLU{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#DCDCAA}html pre.shiki code .sFD8J, html code.shiki .sFD8J{--shiki-light:#A31515;--shiki-default:#A31515;--shiki-dark:#CE9178}html pre.shiki code .s-S-M, html code.shiki .s-S-M{--shiki-light:#098658;--shiki-default:#098658;--shiki-dark:#B5CEA8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .smUd-, html code.shiki .smUd-{--shiki-light:#AF00DB;--shiki-default:#AF00DB;--shiki-dark:#C586C0}",{"title":442,"searchDepth":474,"depth":474,"links":1856},[1857,1862,1868,1869,1870],{"id":316,"depth":474,"text":317,"children":1858},[1859,1860,1861],{"id":420,"depth":520,"text":48},{"id":1033,"depth":520,"text":392},{"id":1274,"depth":520,"text":56},{"id":1455,"depth":474,"text":1456,"children":1863},[1864,1865,1866,1867],{"id":1469,"depth":520,"text":1470},{"id":1549,"depth":520,"text":1550},{"id":1591,"depth":520,"text":1592},{"id":1653,"depth":520,"text":1654},{"id":1674,"depth":474,"text":1675},{"id":1790,"depth":474,"text":1791},{"id":1818,"depth":474,"text":1819},"How Fixture resolves Create requests through behaviors, customizations, the engine, and residue collectors.","md",{},{"title":147,"description":1871},"Pw8Wq2PGjSd5gP7Ge0-9tJl8U-rdr-8C9GKzD77ntuA",[1877,1878],{"title":106,"path":144,"stem":145,"children":-1},{"title":151,"path":152,"stem":153,"children":-1},1788856648535]