public async Task Reader_Should_Read_Symbols() { // Arrange await KicadDownloader.DownloadSymbolFile("Device"); var settings = new Settings { SymbolsPath = Directory.GetCurrentDirectory() }; var settingsProvider = new Mock <ISettingsProvider>(); settingsProvider.Setup(x => x.GetSettingsAsync()).ReturnsAsync(settings); var reader = new KiCad6LibraryReader(settingsProvider.Object); // Act var symbols = await reader.GetSymbolsAsync(); // Assert symbols.Should().HaveCountGreaterThan(0); foreach (var symbol in symbols) { symbol.Should().StartWith("Device:"); } symbols.Should().Contain("Device:C"); symbols.Should().Contain("Device:R"); symbols.Should().Contain("Device:L"); symbols.Should().NotContain("Device:C_0_0"); symbols.Should().NotContain("Device:Filter_EMI_C", because: "it only extends Device:C_Feedthrough"); }
public async Task Parse_KiCadSymAsync() { // Arrange const string libraryName = "Device"; await KicadDownloader.DownloadSymbolFile(libraryName); var input = File.ReadAllText($"{libraryName}.kicad_sym"); // Act var node = SNode.Parse(input); // Assert node.Childs.Should().HaveCountGreaterThan(0); }
public async Task Factory_Should_Read_Symbol() { // Arrange await KicadDownloader.DownloadSymbolFile("Device"); var symbolInfo = new LibraryItemInfo("Device", "R"); var factory = new KiCad6LibrarySymbolTemplateFactory(); // Act var symbol = await factory.GetSymbolTemplateAsync(Directory.GetCurrentDirectory(), symbolInfo); // Assert symbol.Should().NotBeNull(); symbol.Name.Should().Be("symbol"); symbol.Childs[0].Name.Should().Be("R"); }