# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name:
    4.3.1. [TC-LTIME-3.1] Read and Write Time Format Localization Cluster
    Attributes [DUT as Server]

PICS:
    - LTIME.S

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    endpoint: 0

tests:
    - label: "TH reads HourFormat attribute from DUT"
      PICS: LTIME.S.A0000
      verification: |
          ./chip-tool timeformatlocalization read hour-format 1 0
          Verify that  HourFormat attribute value is of Enum8 datatype on TH(chip-tool) log:

          [1651191944157] [13649:182326] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530441
          [1651191944158] [13649:182326] CHIP: [TOO]   HourFormat: 0
      disabled: true

    - label: "If (LTIME.S.A0000.12HR) TH writes 0 to HourFormat attribute"
      PICS: LTIME.S.A0000.12HR
      verification: |
          ./chip-tool timeformatlocalization write hour-format 0 1 0

          Verify that DUT sends a success response  TH(chip-tool) log:
          [1651192743588] [14026:192208] CHIP: [DMG] WriteResponseMessage =
          [1651192743588] [14026:192208] CHIP: [DMG] {
          [1651192743588] [14026:192208] CHIP: [DMG]         AttributeStatusIBs =
          [1651192743588] [14026:192208] CHIP: [DMG]         [
          [1651192743588] [14026:192208] CHIP: [DMG]                 AttributeStatusIB =
          [1651192743588] [14026:192208] CHIP: [DMG]                 {
          [1651192743588] [14026:192208] CHIP: [DMG]                         AttributePathIB =
          [1651192743588] [14026:192208] CHIP: [DMG]                         {
          [1651192743588] [14026:192208] CHIP: [DMG]                                 Endpoint = 0x0,
          [1651192743588] [14026:192208] CHIP: [DMG]                                 Cluster = 0x2c,
          [1651192743588] [14026:192208] CHIP: [DMG]                                 Attribute = 0x0000_0000,
          [1651192743588] [14026:192208] CHIP: [DMG]                         }
          [1651192743588] [14026:192208] CHIP: [DMG]
          [1651192743588] [14026:192208] CHIP: [DMG]                         StatusIB =
          [1651192743588] [14026:192208] CHIP: [DMG]                         {
          [1651192743588] [14026:192208] CHIP: [DMG]                                 status = 0x00 (SUCCESS),
          [1651192743588] [14026:192208] CHIP: [DMG]                         },
          [1651192743588] [14026:192208] CHIP: [DMG]
          [1651192743588] [14026:192208] CHIP: [DMG]                 },
          [1651192743588] [14026:192208] CHIP: [DMG]
          [1651192743588] [14026:192208] CHIP: [DMG]         ],
          [1651192743588] [14026:192208] CHIP: [DMG]
          [1651192743588] [14026:192208] CHIP: [DMG]         InteractionModelRevision = 1
          [1651192743588] [14026:192208] CHIP: [DMG] }
      disabled: true

    - label: "TH reads HourFormat attribute"
      PICS: LTIME.S.A0000
      verification: |
          ./chip-tool timeformatlocalization read hour-format 1 0
          Verify that  HourFormat attribute value changed as  0 on  TH(chip-tool) log:
          [1651193120969] [14169:196901] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530443
          [1651193120969] [14169:196901] CHIP: [TOO]   HourFormat: 0
      disabled: true

    - label: "If (LTIME.S.A0000.24HR) TH writes 1 to HourFormat attribute"
      PICS: LTIME.S.A0000.24HR
      verification: |
          ./chip-tool timeformatlocalization write hour-format 1 1 0

          Verify that DUT sends a success response on TH(chip-tool) log:
          [1651193043035] [14140:195730] CHIP: [DMG] WriteResponseMessage =
          [1651193043035] [14140:195730] CHIP: [DMG] {
          [1651193043035] [14140:195730] CHIP: [DMG]         AttributeStatusIBs =
          [1651193043035] [14140:195730] CHIP: [DMG]         [
          [1651193043035] [14140:195730] CHIP: [DMG]                 AttributeStatusIB =
          [1651193043035] [14140:195730] CHIP: [DMG]                 {
          [1651193043035] [14140:195730] CHIP: [DMG]                         AttributePathIB =
          [1651193043035] [14140:195730] CHIP: [DMG]                         {
          [1651193043035] [14140:195730] CHIP: [DMG]                                 Endpoint = 0x0,
          [1651193043035] [14140:195730] CHIP: [DMG]                                 Cluster = 0x2c,
          [1651193043035] [14140:195730] CHIP: [DMG]                                 Attribute = 0x0000_0000,
          [1651193043035] [14140:195730] CHIP: [DMG]                         }
          [1651193043035] [14140:195730] CHIP: [DMG]
          [1651193043035] [14140:195730] CHIP: [DMG]                         StatusIB =
          [1651193043035] [14140:195730] CHIP: [DMG]                         {
          [1651193043035] [14140:195730] CHIP: [DMG]                                 status = 0x00 (SUCCESS),
          [1651193043035] [14140:195730] CHIP: [DMG]                         },
          [1651193043035] [14140:195730] CHIP: [DMG]
          [1651193043035] [14140:195730] CHIP: [DMG]                 },
          [1651193043035] [14140:195730] CHIP: [DMG]
          [1651193043035] [14140:195730] CHIP: [DMG]         ],
          [1651193043035] [14140:195730] CHIP: [DMG]
          [1651193043036] [14140:195730] CHIP: [DMG]         InteractionModelRevision = 1
          [1651193043036] [14140:195730] CHIP: [DMG] }
          [1651193043036] [14140:195730] CHIP: [DMG] WriteClient moving to [AwaitingDe]
      disabled: true

    - label: "TH reads HourFormat attribute"
      PICS: LTIME.S.A0000
      verification: |
          ./chip-tool timeformatlocalization read hour-format 1 0
          Verify that  HourFormat attribute read request is successful and value changed as  1  on TH(chip-tool) log:
          [1651193120969] [14169:196901] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0000 DataVersion: 3316530443
          [1651193120969] [14169:196901] CHIP: [TOO]   HourFormat: 1
      disabled: true

    - label: "TH reads ActiveCalendarType attribute from DUT"
      PICS: LTIME.S.A0001
      verification: |
          ./chip-tool timeformatlocalization read active-calendar-type 1 0
          Verify that  ActiveCalendarType attribute read request is successful and  value is in between 0 to 11 on  TH(chip-tool) log:
          [1651193250602] [14215:198406] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0001 DataVersion: 3316530443
          [1651193250602] [14215:198406] CHIP: [TOO]   ActiveCalendarType: 0
      disabled: true

    - label: "TH reads SupportedCalendarTypes attribute from DUT"
      PICS: LTIME.S.A0002
      verification: |
          ./chip-tool timeformatlocalization read supported-calendar-types 1 0
          Verify that  SupportedCalendarTypes attribute read request is successful and value is in between 0 to 11 on TH(chip-tool) log:
          [1651194334793] [14653:210647] CHIP: [TOO] Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0002 DataVersion: 3316530443
          [1651194334794] [14653:210647] CHIP: [TOO]   SupportedCalendarTypes: 12 entries
          [1651194334794] [14653:210647] CHIP: [TOO]     [1]: 0
          [1651194334794] [14653:210647] CHIP: [TOO]     [2]: 1
          [1651194334794] [14653:210647] CHIP: [TOO]     [3]: 2
          [1651194334794] [14653:210647] CHIP: [TOO]     [4]: 3
          [1651194334794] [14653:210647] CHIP: [TOO]     [5]: 4
          [1651194334794] [14653:210647] CHIP: [TOO]     [6]: 5
          [1651194334794] [14653:210647] CHIP: [TOO]     [7]: 6
          [1651194334794] [14653:210647] CHIP: [TOO]     [8]: 7
          [1651194334794] [14653:210647] CHIP: [TOO]     [9]: 8
          [1651194334794] [14653:210647] CHIP: [TOO]     [10]: 9
          [1651194334794] [14653:210647] CHIP: [TOO]     [11]: 10
          [1651194334794] [14653:210647] CHIP: [TOO]     [12]: 11
      disabled: true

    - label:
          "TH writes value in PIXIT.LTIME.SCT to ActiveCalendarType attribute,
          followed by reading the ActiveCalendarType attribute value"
      PICS: LTIME.S.A0001
      verification: |
          ./chip-tool timeformatlocalization write active-calendar-type 0 1 0

          Verify that DUT sends a success response on TH(chip-tool) log:
          [1651194449245] [14699:212201] CHIP: [DMG] WriteResponseMessage =
          [1651194449245] [14699:212201] CHIP: [DMG] {
          [1651194449245] [14699:212201] CHIP: [DMG]         AttributeStatusIBs =
          [1651194449245] [14699:212201] CHIP: [DMG]         [
          [1651194449245] [14699:212201] CHIP: [DMG]                 AttributeStatusIB =
          [1651194449246] [14699:212201] CHIP: [DMG]                 {
          [1651194449246] [14699:212201] CHIP: [DMG]                         AttributePathIB =
          [1651194449246] [14699:212201] CHIP: [DMG]                         {
          [1651194449246] [14699:212201] CHIP: [DMG]                                 Endpoint = 0x0,
          [1651194449246] [14699:212201] CHIP: [DMG]                                 Cluster = 0x2c,
          [1651194449246] [14699:212201] CHIP: [DMG]                                 Attribute = 0x0000_0001,
          [1651194449246] [14699:212201] CHIP: [DMG]                         }
          [1651194449246] [14699:212201] CHIP: [DMG]
          [1651194449246] [14699:212201] CHIP: [DMG]                         StatusIB =
          [1651194449246] [14699:212201] CHIP: [DMG]                         {
          [1651194449246] [14699:212201] CHIP: [DMG]                                 status = 0x00 (SUCCESS),
          [1651194449246] [14699:212201] CHIP: [DMG]                         },
          [1651194449246] [14699:212201] CHIP: [DMG]
          [1651194449246] [14699:212201] CHIP: [DMG]                 },
          [1651194449246] [14699:212201] CHIP: [DMG]
          [1651194449246] [14699:212201] CHIP: [DMG]         ],
          [1651194449246] [14699:212201] CHIP: [DMG]
          [1651194449246] [14699:212201] CHIP: [DMG]         InteractionModelRevision = 1
          [1651194449246] [14699:212201] CHIP: [DMG] }

          ./chip-tool timeformatlocalization read active-calendar-type 1 0
          Verify that ActiveCalendarType attribute value changed as  0 on TH(chip-tool) log:

          [1658149303.936031][9227:9232] CHIP:DMG: }
          [1658149303.936185][9227:9232] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_0001 DataVersion: 2364893025
          [1658149303.936302][9227:9232] CHIP:TOO:   ActiveCalendarType: 0
          [1658149303.936385][9227:9232] CHIP:EM: Sending Standalone Ack for MessageCounter:70392442 on exchange 10288i
      disabled: true

    - label: "Repeat step 8 for all the values in PIXIT.LTIME.SCT"
      PICS: LTIME.S.A0001
      verification: |
          Repeat the test step 8 for below mentioned values 1, 2,3, 4, 5, 6,7, 8, 9,10 and 11 and verify that TH receives the write command and updates the respective value. Verify that TH reads ActiveCalendarType attribute value and it is the same as the value that was set before
      disabled: true

    - label: "TH writes 50 to ActiveCalendarType attribute"
      PICS: LTIME.S.A0001
      verification: |
          ./chip-tool timeformatlocalization write  active-calendar-type 50 1 0
          Verify that DUT sends a CONSTRAINT_ERROR response On TH(chip-tool) log:
          [1658742658.653019][3572:3577] CHIP:DMG:         ],
          [1658742658.653047][3572:3577] CHIP:DMG:
          [1658742658.653071][3572:3577] CHIP:DMG:         InteractionModelRevision = 1
          [1658742658.653098][3572:3577] CHIP:DMG: }
          [1658742658.653166][3572:3577] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1658742658.653198][3572:3577] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR)
          [1658742658.653254][3572:3577] CHIP:EM: Sending Standalone Ack for MessageCounter:51762667 on exchange 55831i
      disabled: true

    - label: "TH writes 5 to HourFormat attribute"
      PICS: LTIME.S.A0000
      verification: |
          ./chip-tool timeformatlocalization write   hour-format  5 1 0
          Verify that DUT sends a CONSTRAINT_ERROR response On TH(chip-tool)  log:

          [1656934321.910991][6387:6392] CHIP:DMG: WriteResponseMessage =
          [1656934321.911025][6387:6392] CHIP:DMG: {
          [1656934321.911054][6387:6392] CHIP:DMG:         AttributeStatusIBs =
          [1656934321.911096][6387:6392] CHIP:DMG:         [
          [1656934321.911129][6387:6392] CHIP:DMG:                 AttributeStatusIB =
          [1656934321.911165][6387:6392] CHIP:DMG:                 {
          [1656934321.911200][6387:6392] CHIP:DMG:                         AttributePathIB =
          [1656934321.911242][6387:6392] CHIP:DMG:                         {
          [1656934321.911285][6387:6392] CHIP:DMG:                                 Endpoint = 0x0,
          [1656934321.911330][6387:6392] CHIP:DMG:                                 Cluster = 0x2c,
          [1656934321.911375][6387:6392] CHIP:DMG:                                 Attribute = 0x0000_0000,
          [1656934321.911417][6387:6392] CHIP:DMG:                         }
          [1656934321.911463][6387:6392] CHIP:DMG:
          [1656934321.911503][6387:6392] CHIP:DMG:                         StatusIB =
          [1656934321.911574][6387:6392] CHIP:DMG:                         {
          [1656934321.911618][6387:6392] CHIP:DMG:                                 status = 0x87 (CONSTRAINT_ERROR),
          [1656934321.911658][6387:6392] CHIP:DMG:                         },
          [1656934321.911699][6387:6392] CHIP:DMG:
          [1656934321.911733][6387:6392] CHIP:DMG:                 },
          [1656934321.911772][6387:6392] CHIP:DMG:
          [1656934321.911804][6387:6392] CHIP:DMG:         ],
          [1656934321.911842][6387:6392] CHIP:DMG:
          [1656934321.911875][6387:6392] CHIP:DMG:         InteractionModelRevision = 1
          [1656934321.911906][6387:6392] CHIP:DMG: }
          [1656934321.911992][6387:6392] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1656934321.912033][6387:6392] CHIP:TOO: Response Failure: IM Error 0x00000587: General error: 0x87 (CONSTRAINT_ERROR)
          [1656934321.912104][6387:6392] CHIP:EM: Sending Standalone Ack for MessageCounter:9709501 on exchange 15031i
      disabled: true
