def test_command_params(stc):
    ctor = CScriptableCreator()
    stc_sys = CStcSystem.Instance()
    project = stc_sys.GetObject("Project")
    port = ctor.Create("Port", project)
    handle_list = [port.GetObjectHandle()]
    rx_port = ctor.Create("Port", project)
    stream_block = ctor.Create("StreamBlock", port)
    stream_block.AddObject(rx_port, RelationType("ExpectedRx"))
    tag_utils.add_tag_to_object(stream_block, "ttStreamBlock")

    # Validate L2LearningStartCommand params
    cmd = learningCmd.l2_learning_start(handle_list, "RX_ONLY")
    assert cmd.GetCollection("HandleList") == handle_list
    assert cmd.Get("L2LearningOption") == "RX_ONLY"
    cmd.MarkDelete()

    # Validate L2LearningStopCommand params
    cmd = learningCmd.l2_learning_stop(handle_list)
    assert cmd.GetCollection("HandleList") == handle_list
    cmd.MarkDelete()

    # Validate ArpNdStartCommand params
    cmd = learningCmd.l3_learning_start(handle_list, False, True)
    assert cmd.GetCollection("HandleList") == handle_list
    assert not cmd.Get("WaitForArpToFinish")
    assert cmd.Get("ForceArp")
    cmd.MarkDelete()

    # Validate ArpNdStopCommand params
    cmd = learningCmd.l3_learning_stop(handle_list)
    assert cmd.GetCollection("HandleList") == handle_list
    cmd.MarkDelete()

    # Validate ArpNdVerifyResolvedCommand params
    cmd = learningCmd.verify_arp(handle_list)
    assert cmd.GetCollection("HandleList") == handle_list
    cmd.MarkDelete()

    return