Skip to content

Instantly share code, notes, and snippets.

@trikitrok
Created April 4, 2025 09:14
Show Gist options
  • Save trikitrok/af3e889f107ef8bb3343c171312c0a1b to your computer and use it in GitHub Desktop.
Save trikitrok/af3e889f107ef8bb3343c171312c0a1b to your computer and use it in GitHub Desktop.
First possible test for legacy-wav-report exercise
public class ExcludeFilesTest
{
[Test]
public void Exclude_File_With_Keyword()
{
var wavExtractor = Substitute.For<WavExtractor32V>();
var excludeFiles = new ExcludeFiles(wavExtractor);
var filenames = new List<string>()
{
"file1.wav",
"fileWithKeyword.wav",
"file1.wav",
};
var optional = new List<string>()
{
"exclude=Keyword"
};
excludeFiles.Execute(filenames, optional);
var expectedFiles = new List<string>()
{
"file1.wav",
"file1.wav",
};
wavExtractor.Received().Execute(
Arg.Is<List<string>>(x => x.SequenceEqual(expectedFiles)),
Arg.Is<List<string>>(x => x.SequenceEqual(optional))
);
}
}
public class ExcludeFiles : WavExtractor32V
{
private readonly WavExtractor32V _wavExtractor;
public ExcludeFiles(WavExtractor32V wavExtractor)
{
_wavExtractor = wavExtractor;
}
public override void Execute(List<string> filenames, List<string> optional)
{
var keyword = optional.First().Split("=").Last();
var filteredFiles = filenames.FindAll(x => !x.Contains(keyword)).ToList();
_wavExtractor.Execute(filteredFiles, optional);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment