public void ConvertTest1() { var unknownFrame = new UnknownFrame { Descriptor = { ID = "ABCD", TagAlterPreservation = true }, Content = new byte[] {0x30, 0x31, 0x32, 0x33} }; var rawFrame = unknownFrame.Convert(); Assert.AreEqual(rawFrame.ID, "ABCD"); Assert.AreEqual(rawFrame.Payload.Length, 4); Assert.AreEqual(rawFrame.Payload[0], 0x30); Assert.AreEqual(rawFrame.Payload[1], 0x31); Assert.AreEqual(rawFrame.Payload[2], 0x32); Assert.AreEqual(rawFrame.Payload[3], 0x33); Assert.AreEqual(rawFrame.TagAlterPreservation, true, "Tag Alter Preservation failed."); Assert.AreEqual(rawFrame.FileAlterPreservation, false, "File Alter Preservation failed."); Assert.AreEqual(rawFrame.ReadOnly, false, "Read Only Failed."); Assert.AreEqual(rawFrame.Compression, false, "Compression failed."); Assert.AreEqual(rawFrame.Encryption, false, "Encryption failed."); Assert.AreEqual(rawFrame.GroupingIdentify, false, "Grouping Identify failed."); }
private static IFrame AnalyseFrameId(RawFrame rawFrame, IFrameCreationService frameService) { var id = rawFrame.ID; IFrame frame = null; if (frameService.Search(id)) { // // Get the specific frame instance // frame = frameService.GetFrameInstance(id); } else { if (id[0] == 'T' && id[1] != 'X') { // // Handle Textfames // frame = frameService.GetTextFrame(); } if (id[0] == 'W' && id[1] != 'X') { // // Handle Web Frames // frame = frameService.GetUrlLinkFrame(); } } if (frame == null) { // // If all is failed then create an Unknown frame instance // frame = new UnknownFrame(); } return frame; }
private static IFrame AnalyseFrameId(RawFrame rawFrame) { IFrame frame; if (rawFrame.ID[0] == 'T' || rawFrame.ID[0] == 'W') { switch (rawFrame.ID[0]) { case 'T': if (rawFrame.ID != "TXXX") { frame = new TextFrame(); } else { frame = new UserDefinedTextFrame(); } break; case 'W': if (rawFrame.ID != "WXXX") { frame = new UrlLinkFrame(); } else { frame = new UserDefinedURLLinkFrame(); } break; default: throw new ID3TagException("Unknown Text or URL frame!"); } } else { // Other frames switch (rawFrame.ID) { case "AENC": frame = new AudioEncryptionFrame(); break; case "PRIV": frame = new PrivateFrame(); break; case "MCDI": frame = new MusicCdIdentifierFrame(); break; case "COMM": frame = new CommentFrame(); break; case "APIC": frame = new PictureFrame(); break; case "PCNT": frame = new PlayCounterFrame(); break; case "POPM": frame = new PopularimeterFrame(); break; case "UFID": frame = new UniqueFileIdentifierFrame(); break; default: frame = new UnknownFrame(); break; } } return frame; }