|
| 1 | +namespace FlowSynx.PluginCore.UnitTests; |
| 2 | + |
| 3 | +public class PluginCategoryTests |
| 4 | +{ |
| 5 | + [Fact] |
| 6 | + public void PluginCategory_ShouldContainAllExpectedValues() |
| 7 | + { |
| 8 | + var expected = new[] |
| 9 | + { |
| 10 | + "AI", "Api", "Authentication", "BusinessIntelligence", "Blockchain", "Cloud", |
| 11 | + "Communication", "Data", "Database", "DevOps", "Finance", "ML", "Monitoring", |
| 12 | + "Logging", "Networking", "ProjectWorkflow", "ResourcePlanning", "Security", |
| 13 | + "Storage", "Compression", "Testing", "Web", "Execution", "IoT", "Media" |
| 14 | + }; |
| 15 | + |
| 16 | + var actual = Enum.GetNames(typeof(PluginCategory)); |
| 17 | + Assert.Equal(expected.Length, actual.Length); |
| 18 | + foreach (var name in expected) |
| 19 | + { |
| 20 | + Assert.Contains(name, actual); |
| 21 | + } |
| 22 | + } |
| 23 | + |
| 24 | + [Theory] |
| 25 | + [InlineData("AI", PluginCategory.AI)] |
| 26 | + [InlineData("Api", PluginCategory.Api)] |
| 27 | + [InlineData("Authentication", PluginCategory.Authentication)] |
| 28 | + [InlineData("BusinessIntelligence", PluginCategory.BusinessIntelligence)] |
| 29 | + [InlineData("Blockchain", PluginCategory.Blockchain)] |
| 30 | + [InlineData("Cloud", PluginCategory.Cloud)] |
| 31 | + [InlineData("Communication", PluginCategory.Communication)] |
| 32 | + [InlineData("Data", PluginCategory.Data)] |
| 33 | + [InlineData("Database", PluginCategory.Database)] |
| 34 | + [InlineData("DevOps", PluginCategory.DevOps)] |
| 35 | + [InlineData("Finance", PluginCategory.Finance)] |
| 36 | + [InlineData("ML", PluginCategory.ML)] |
| 37 | + [InlineData("Monitoring", PluginCategory.Monitoring)] |
| 38 | + [InlineData("Logging", PluginCategory.Logging)] |
| 39 | + [InlineData("Networking", PluginCategory.Networking)] |
| 40 | + [InlineData("ProjectWorkflow", PluginCategory.ProjectWorkflow)] |
| 41 | + [InlineData("ResourcePlanning", PluginCategory.ResourcePlanning)] |
| 42 | + [InlineData("Security", PluginCategory.Security)] |
| 43 | + [InlineData("Storage", PluginCategory.Storage)] |
| 44 | + [InlineData("Compression", PluginCategory.Compression)] |
| 45 | + [InlineData("Testing", PluginCategory.Testing)] |
| 46 | + [InlineData("Web", PluginCategory.Web)] |
| 47 | + [InlineData("Execution", PluginCategory.Execution)] |
| 48 | + [InlineData("IoT", PluginCategory.IoT)] |
| 49 | + [InlineData("Media", PluginCategory.Media)] |
| 50 | + public void PluginCategory_ShouldParseFromString(string name, PluginCategory expected) |
| 51 | + { |
| 52 | + var parsed = Enum.Parse<PluginCategory>(name); |
| 53 | + Assert.Equal(expected, parsed); |
| 54 | + } |
| 55 | + |
| 56 | + [Fact] |
| 57 | + public void PluginCategory_InvalidValue_ShouldThrow() |
| 58 | + { |
| 59 | + Assert.Throws<ArgumentException>(() => Enum.Parse<PluginCategory>("NonExistentCategory")); |
| 60 | + } |
| 61 | +} |
0 commit comments