Exemple #1
0
    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");
    }