public void UnitM3u_1() { var fName1 = @"Targets\Hashes\OK02.m3u"; using (Stream fs = new FileStream(fName1, FileMode.Open, FileAccess.Read)) { var info = new FileInfo(fName1); var hdr = new byte[0x20]; var got = fs.Read(hdr, 0, hdr.Length); Assert.AreEqual(hdr.Length, got); M3uFormat.Model m3uModel = M3uFormat.CreateModel(fs, hdr, fName1); M3uFormat m3u = m3uModel.Data; m3uModel.CalcHashes(Hashes.None, Validations.Exists); Assert.AreEqual(Severity.Advisory, m3u.Issues.MaxSeverity); Assert.AreEqual(1, m3u.Issues.Items.Count); Assert.AreEqual(3, m3u.Files.Items.Count); foreach (var item in m3u.Files.Items) { Assert.IsTrue(item.IsFound == true); } Assert.AreEqual(1, m3u.Issues.Items.Count); Assert.AreEqual(Severity.Advisory, m3u.Issues.MaxSeverity); foreach (var item in m3u.Files.Items) { Assert.IsTrue(item.IsFound.Value); } } }
public void UnitM3u_2() { var fName1 = @"Targets\Hashes\Bad02.m3u"; using (Stream fs = new FileStream(fName1, FileMode.Open, FileAccess.Read)) { var hdr = new byte[0x20]; var got = fs.Read(hdr, 0, hdr.Length); Assert.AreEqual(hdr.Length, got); M3uFormat.Model m3uModel = M3uFormat.CreateModel(fs, hdr, fName1); M3uFormat m3u = m3uModel.Data; Assert.IsNotNull(m3uModel); Assert.AreEqual(Severity.NoIssue, m3u.Issues.MaxSeverity); Assert.AreEqual(0, m3u.Issues.Items.Count); Assert.AreEqual(3, m3u.Files.Items.Count); foreach (var item in m3u.Files.Items) { Assert.IsNull(item.IsFound); } m3uModel.CalcHashes(Hashes.None, Validations.Exists); Assert.AreEqual(2, m3u.Issues.Items.Count); Assert.AreEqual(Severity.Error, m3u.Issues.MaxSeverity); Assert.IsTrue(m3u.Files.Items[0].IsFound.Value); Assert.IsFalse(m3u.Files.Items[1].IsFound.Value); Assert.IsTrue(m3u.Files.Items[2].IsFound.Value); } }
public void Test_M3u_2() { var fn = @"Targets\Hashes\Bad02.m3u"; using (var fs = new FileStream(fn, FileMode.Open, FileAccess.Read)) { var info = new FileInfo(fn); var hdr = new byte[0x20]; var got = fs.Read(hdr, 0, hdr.Length); Assert.AreEqual(hdr.Length, got); M3uFormat.Model model = M3uFormat.CreateModel(fs, hdr, fs.Name); M3uFormat bind = model.Data; Assert.IsNotNull(model); Assert.IsTrue(bind.Issues.MaxSeverity == Severity.NoIssue); Assert.AreEqual(0, bind.Issues.Items.Count); Assert.AreEqual(3, bind.Files.Items.Count); foreach (var item in bind.Files.Items) { Assert.IsNull(item.IsFound); } model.CalcHashes(Hashes.None, Validations.Exists); Assert.AreEqual(2, bind.Issues.Items.Count); Assert.AreEqual(Severity.Error, bind.Issues.MaxSeverity); Assert.IsTrue(bind.Files.Items[0].IsFound.Value); Assert.IsFalse(bind.Files.Items[1].IsFound.Value); Assert.IsTrue(bind.Files.Items[2].IsFound.Value); } }
private Severity ValidatePlaylists() { Severity maxSeverity = Severity.NoIssue; foreach (var info in Bind.m3uInfos) { using (var stream = new FileStream(info.FullName, FileMode.Open, FileAccess.Read)) { var hdr = new byte[7]; stream.Read(hdr, 0, hdr.Length); var m3uModel = M3uFormat.CreateModel(stream, hdr, info.FullName); m3uModel.SetAllowRooted(false); m3uModel.CalcHashes(Hashes.None, Validations.Exists); Owner.SetCurrentFile(info.Name); ++Owner.Data.M3uFormat.TrueTotal; ++Owner.Data.TotalFiles; Owner.ReportFormat(m3uModel.Data, Bind.Signature != null); if (maxSeverity < m3uModel.IssueModel.Data.MaxSeverity) { maxSeverity = m3uModel.IssueModel.Data.MaxSeverity; } } } foreach (var info in Bind.m3u8Infos) { using (var stream = new FileStream(info.FullName, FileMode.Open, FileAccess.Read)) { var hdr = new byte[7]; stream.Read(hdr, 0, hdr.Length); var m3u8Model = M3u8Format.CreateModel(stream, hdr, info.FullName); m3u8Model.SetAllowRooted(false); m3u8Model.CalcHashes(Hashes.None, Validations.Exists); Owner.SetCurrentFile(info.Name); ++Owner.Data.M3u8Format.TrueTotal; ++Owner.Data.TotalFiles; Owner.ReportFormat(m3u8Model.Data, Bind.Signature != null); if (maxSeverity < m3u8Model.IssueModel.Data.MaxSeverity) { maxSeverity = m3u8Model.IssueModel.Data.MaxSeverity; } } } return(maxSeverity); }