using System.Net.NetworkInformation; using skyscraper5.Docsis; using skyscraper5.Docsis.AnnexC; using skyscraper5.Docsis.MacManagement; namespace skyscraper8.Tests.NUnit.Tests.ResourceTests; [TestFixture] public class DocsisResourceTests : SkyscrapersTestingFramework { [Test] public void ModemCapabilitiesEncoding() { byte[] buffer = Properties.Resources.ModemCapabilitiesEncodingTest; ModemCapabilitiesEncoding modemCapabilitiesEncoding = new ModemCapabilitiesEncoding(buffer); Assert.IsTrue(modemCapabilitiesEncoding.Valid); } [Test] public void MultipartRegistrationResponse() { Random rng = new Random(); byte[] sourceBuffer = new byte[6]; rng.NextBytes(sourceBuffer); PhysicalAddress source = new PhysicalAddress(sourceBuffer); byte[] targetBuffer = new byte[6]; rng.NextBytes(targetBuffer); PhysicalAddress target = new PhysicalAddress(targetBuffer); byte[] buffer = Properties.Resources.T45_V4_MultipartRegistrationResponseTest; T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer); Assert.IsTrue(test.Valid); } [Test] public void MacManagement_4_45() { NullDocsisEventHandler docsisEventHandler = new NullDocsisEventHandler(); DocsisEnvironment environment = new DocsisEnvironment(docsisEventHandler); byte[] testPayload = Properties.Resources.PushMacManagementMessage_Version4_Type45; Random rng = new Random(); byte[] sourceBuffer = new byte[6]; rng.NextBytes(sourceBuffer); PhysicalAddress source = new PhysicalAddress(sourceBuffer); byte[] targetBuffer = new byte[6]; rng.NextBytes(targetBuffer); PhysicalAddress target = new PhysicalAddress(targetBuffer); environment.PushMacManagementMessage(testPayload, 4, 45, source, target, testPayload); } [Test] public void InvalidUpstreamChannelDescriptorTest() { byte[] testPayload = Properties.Resources.UpstreamChannelDescriptorTest; Random rng = new Random(); byte[] sourceBuffer = new byte[6]; rng.NextBytes(sourceBuffer); PhysicalAddress source = new PhysicalAddress(sourceBuffer); byte[] targetBuffer = new byte[6]; rng.NextBytes(targetBuffer); PhysicalAddress target = new PhysicalAddress(targetBuffer); UpstreamChannelDescriptor ucd = new UpstreamChannelDescriptor(source, target, testPayload); Assert.IsFalse(ucd.Valid); } [Test] public void TransmitChannelConfigurationObjectTest() { byte[] testPayload = Properties.Resources.TransmitChannelConfigurationObject; CommonTlvEncodingObject.TransmitChannelConfigurationObject child = new CommonTlvEncodingObject.TransmitChannelConfigurationObject(testPayload); Assert.IsTrue(child.Valid); } [Test] public void MultipartRegistrationResponse2() { Random rng = new Random(); byte[] sourceBuffer = new byte[6]; rng.NextBytes(sourceBuffer); PhysicalAddress source = new PhysicalAddress(sourceBuffer); byte[] targetBuffer = new byte[6]; rng.NextBytes(targetBuffer); PhysicalAddress target = new PhysicalAddress(targetBuffer); byte[] buffer = Properties.Resources.T45_V4_MultipartRegistrationResponseTest2; T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer); Assert.IsTrue(test.Valid); } [Test] public void OffsetBreakerTest() { byte[] blob = Properties.Resources.ranging_response_test; Random rng = new Random(); byte[] sourceMacBuffer = new byte[6]; rng.NextBytes(sourceMacBuffer); PhysicalAddress sourceAddress = new PhysicalAddress(sourceMacBuffer); byte[] targetMacBuffer = new byte[6]; rng.NextBytes(targetMacBuffer); PhysicalAddress targetAddress = new PhysicalAddress(targetMacBuffer); RangingResponse rangingResponse = new RangingResponse(sourceAddress, targetAddress, blob); Assert.IsTrue(rangingResponse.Valid); } }