1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the 'License') 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an 'AS IS' BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; 16import Queue from "@ohos.util.Queue"; 17 18describe("QueueTest", function () { 19 it("SR000GGR48_testConstructor001", 0, function () { 20 try { 21 let queue = new Queue(); 22 } catch (err) { 23 expect(err.name).assertEqual("TypeError"); 24 expect(err.message).assertEqual("Cannot create new queue"); 25 } 26 }); 27 it("SR000GGR48_testAdd002", 0, function () { 28 let queue = new Queue(); 29 queue.add("四"); 30 let res = queue.getFirst(); 31 expect(res).assertEqual("四"); 32 }); 33 it("SR000GGR48_testAdd003", 0, function () { 34 let queue = new Queue(); 35 queue.add(8); 36 let res = queue.getFirst(); 37 expect(res).assertEqual(8); 38 }); 39 it("SR000GGR48_testAdd004", 0, function () { 40 let queue = new Queue(); 41 let a = ["a", "b", "c"]; 42 queue.add(a); 43 let res = queue.getFirst(); 44 expect(res).assertEqual(a); 45 }); 46 it("SR000GGR48_testGetFirst005", 0, function () { 47 let queue = new Queue(); 48 queue.add(6); 49 queue.add("四"); 50 let res = queue.getFirst(); 51 expect(res).assertEqual(6); 52 }); 53 it("SR000GGR48_testPop006", 0, function () { 54 let queue = new Queue(); 55 queue.add(6); 56 queue.add("四"); 57 let res = queue.pop(); 58 let res1 = queue.getFirst(); 59 expect(res).assertEqual(6); 60 expect(res1).assertEqual("四"); 61 }); 62 it("SR000GGR48_testForEach007", 0, function () { 63 let queue = new Queue(); 64 queue.add(8); 65 queue.add("一"); 66 queue.add("二"); 67 queue.add(1); 68 queue.add(2); 69 queue.add(3); 70 queue.add(4); 71 queue.add(5); 72 queue.add(6); 73 let c = ["a", "b", "c", "d"]; 74 queue.add(c); 75 let arr = []; 76 queue.forEach((item, index) => { 77 arr.push(item); 78 }); 79 let a = [8, "一", "二", 1, 2, 3, 4, 5, 6, c]; 80 for (let i = 0; i < a.length; i++) { 81 expect(arr[i]).assertEqual(a[i]); 82 } 83 }); 84 it("SR000GGR48_testIterator008", 0, function () { 85 let queue = new Queue(); 86 queue.add(8); 87 queue.add("一"); 88 queue.add("二"); 89 queue.add(5); 90 queue.add(6); 91 queue.add("三"); 92 queue.add("四"); 93 let arr = []; 94 for (let item of queue) { 95 arr.push(item); 96 } 97 let a = [8, "一", "二", 5, 6, "三", "四"]; 98 for (let i = 0; i < a.length; i++) { 99 expect(arr[i]).assertEqual(a[i]); 100 } 101 }); 102 it("SR000GGR48_testLength009", 0, function () { 103 let queue = new Queue(); 104 queue.add(8); 105 queue.add("一"); 106 queue.add("二"); 107 queue.add(1); 108 queue.add(2); 109 queue.add(3); 110 queue.add(4); 111 queue.add(5); 112 queue.add(6); 113 let res = queue.length; 114 expect(9).assertEqual(res); 115 }); 116 it("SR000GGR48_testAdd010", 0, function () { 117 let queue = new Queue(); 118 queue.add("$"); 119 let res = queue.getFirst(); 120 expect(res).assertEqual("$"); 121 }); 122 it("SR000GGR48_testAdd011", 0, function () { 123 let queue = new Queue(); 124 queue.add(" "); 125 let res = queue.getFirst(); 126 expect(res).assertEqual(" "); 127 }); 128 it("SR000GGR48_testAdd012", 0, function () { 129 let queue = new Queue(); 130 queue.add(null); 131 let res = queue.getFirst(); 132 expect(res).assertEqual(null); 133 }); 134 it("SR000GGR48_testAdd013", 0, function () { 135 let queue = new Queue(); 136 queue.add(undefined); 137 let res = queue.getFirst(); 138 expect(res).assertEqual(undefined); 139 }); 140 it("SR000GGR48_testAdd014", 0, function () { 141 let queue = new Queue(); 142 for (let i = 0; i < 100; i++) { 143 queue.add(i); 144 } 145 let res = queue.length; 146 expect(res).assertEqual(100); 147 }); 148 it("SR000GGR48_testGetFirst015", 0, function () { 149 let queue = new Queue(); 150 let res = queue.getFirst(); 151 expect(res).assertEqual(undefined); 152 }); 153 it("SR000GGR48_testPop016", 0, function () { 154 let queue = new Queue(); 155 let res = queue.pop(); 156 expect(res).assertEqual(undefined); 157 }); 158 it("SR000GGR48_testForEach017", 0, function () { 159 let queue = new Queue(); 160 let arr = []; 161 queue.forEach((item, index) => { 162 arr.push(item); 163 }); 164 expect(arr.length).assertEqual(0); 165 }); 166 it("SR000GGR48_testIterator018", 0, function () { 167 let queue = new Queue(); 168 let arr = []; 169 for (let item of queue) { 170 arr.push(item); 171 } 172 expect(arr.length).assertEqual(0); 173 }); 174 it("SR000GGR48_testIterator019", 0, function () { 175 let queue = new Queue(); 176 queue.add(8); 177 queue.add("一"); 178 queue.add("二"); 179 queue.add(5); 180 queue.add(6); 181 queue.add("三"); 182 queue.add("四"); 183 let arr = []; 184 let size = queue.length; 185 let itr = queue[Symbol.iterator](); 186 for (let i = 0; i < size; i++) { 187 arr.push(itr.next().value); 188 } 189 let a = [8, "一", "二", 5, 6, "三", "四"]; 190 for (let i = 0; i < a.length; i++) { 191 expect(arr[i]).assertEqual(a[i]); 192 } 193 }); 194}); 195