public void BuildFileMergeInfoTest(string testCase, string[] arguments, FileMergeInfo expectedResult, Exception expectedException) { try { var argumentParser = new ArgumentParser { Arguments = arguments }; var actual = argumentParser.BuildFileMergeInfo(); Assert.NotNull(testCase); Assert.Equal(expectedResult.DestinationFile, actual.DestinationFile); if (expectedResult.FileParts?.Any() ?? false) { for (int i = 0; i < expectedResult.FileParts.Count(); i++) { Assert.Equal(expectedResult.FileParts.ElementAt(i), actual.FileParts.ElementAt(i)); } } } catch (Exception ex) { Assert.Equal(expectedException.GetType().FullName, ex.GetType().FullName); Assert.Equal(expectedException.Message, ex.Message); } }