|
1 | 1 | // Copyright (c) Microsoft Corporation. All rights reserved. |
2 | 2 | // Licensed under the MIT License. |
3 | 3 |
|
| 4 | +using System.IO; |
4 | 5 | using Microsoft.TypeSpec.Generator.Input; |
5 | 6 | using Microsoft.TypeSpec.Generator.Providers; |
6 | 7 | using NUnit.Framework; |
@@ -38,6 +39,38 @@ public void DoesNotUseModelsNamespaceIfConfigSetToFalse() |
38 | 39 | Assert.AreEqual("Samples", updatedModel!.Type.Namespace); |
39 | 40 | } |
40 | 41 |
|
| 42 | + [Test] |
| 43 | + public void MovesModelsOutOfModelsDirectory() |
| 44 | + { |
| 45 | + MockHelpers.LoadMockGenerator(configurationJson: "{ \"package-name\": \"TestLibrary\", \"model-namespace\": false }"); |
| 46 | + var visitor = new TestNamespaceVisitor(); |
| 47 | + var inputType = InputFactory.Model("TestModel", "Samples"); |
| 48 | + var model = new ModelProvider(inputType); |
| 49 | + var updatedModel = visitor.InvokePreVisitModel(inputType, model); |
| 50 | + |
| 51 | + Assert.IsNotNull(updatedModel); |
| 52 | + Assert.AreEqual( |
| 53 | + $"src{Path.DirectorySeparatorChar}Generated{Path.DirectorySeparatorChar}{updatedModel!.Name}.cs", |
| 54 | + updatedModel.RelativeFilePath); |
| 55 | + } |
| 56 | + |
| 57 | + [Test] |
| 58 | + public void DoesNotMoveModelIfNotInModelsDirectory() |
| 59 | + { |
| 60 | + MockHelpers.LoadMockGenerator(configurationJson: "{ \"package-name\": \"TestLibrary\", \"model-namespace\": false }"); |
| 61 | + var visitor = new TestNamespaceVisitor(); |
| 62 | + var inputType = InputFactory.Model("TestModels", "Samples"); |
| 63 | + var model = new ModelProvider(inputType); |
| 64 | + |
| 65 | + model.Update(relativeFilePath: $"src{Path.DirectorySeparatorChar}Generated{Path.DirectorySeparatorChar}{model.Name}.cs"); |
| 66 | + var updatedModel = visitor.InvokePreVisitModel(inputType, model); |
| 67 | + |
| 68 | + Assert.IsNotNull(updatedModel); |
| 69 | + Assert.AreEqual( |
| 70 | + $"src{Path.DirectorySeparatorChar}Generated{Path.DirectorySeparatorChar}{updatedModel!.Name}.cs", |
| 71 | + updatedModel.RelativeFilePath); |
| 72 | + } |
| 73 | + |
41 | 74 | [Test] |
42 | 75 | public void DoesNotChangeNamespaceOfCustomizedModel() |
43 | 76 | { |
|
0 commit comments