Skip to content

Commit 81b5a0f

Browse files
authored
Merge pull request #89 from MinKuanIsHere/313552009
[LAB1] 313552009
2 parents 20ff4a0 + a7698ca commit 81b5a0f

1 file changed

Lines changed: 84 additions & 8 deletions

File tree

lab1/main_test.js

Lines changed: 84 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,97 @@ const assert = require('assert');
33
const { MyClass, Student } = require('./main');
44

55
test("Test MyClass's addStudent", () => {
6-
// TODO
7-
throw new Error("Test not implemented");
6+
7+
// Create an instance of MyClass
8+
const myClass = new MyClass();
9+
10+
// Test 1: Passing a non-Student object should return -1
11+
assert.strictEqual(myClass.addStudent("Jonh"), -1, "test 1 at addStudent");
12+
13+
// Test 2: Adding a valid Student object should return index 0
14+
const student0 = new Student();
15+
student0.setName("John");
16+
assert.strictEqual(myClass.addStudent(student0), 0, "test 2 at addStudent");
17+
18+
// Test 3: Adding another Student should return index 1 (Fix the expected value)
19+
const student1 = new Student();
20+
student1.setName("Jane");
21+
assert.strictEqual(myClass.addStudent(student1), 1, "test 3 at addStudent");
22+
23+
// No need to throw an error; tests are implemented
24+
// throw new Error("Test not implemented");
825
});
926

1027
test("Test MyClass's getStudentById", () => {
11-
// TODO
12-
throw new Error("Test not implemented");
28+
29+
// Create an instance of MyClass
30+
const myClass = new MyClass();
31+
32+
// add student
33+
const student0 = new Student(), student1 = new Student(), student2 = new Student();
34+
student0.setName("Doe");
35+
36+
const newStudentId0 = myClass.addStudent(student0);
37+
38+
// Test 1: Passing an invalid ID (< 0) should return null
39+
assert.strictEqual(myClass.getStudentById(-1), null, "test 1 at getStudentById");
40+
41+
// Test 2: Valid ID should return the correct student object
42+
assert.strictEqual(myClass.getStudentById(newStudentId0), student0, "test 2 at getStudentById");
43+
44+
// Test 3: Passing an out-of-bounds ID should return null
45+
assert.strictEqual(myClass.getStudentById(999), null, "test 3 at getStudentById");
46+
47+
// No need to throw an error; tests are implemented
48+
// throw new Error("Test not implemented");
1349
});
1450

1551
test("Test Student's setName", () => {
16-
// TODO
17-
throw new Error("Test not implemented");
52+
53+
// Test 1: userName is an integer, should not change name (remain undefined)
54+
const student0 = new Student();
55+
const name0= 20250306;
56+
student0.setName(name0);
57+
assert.strictEqual(student0.getName(), '', "test 1 at setName");
58+
59+
// Test 2: userName is a float, should not change name (remain undefined)
60+
const student1 = new Student();
61+
const name1= 3.14156;
62+
student1.setName(name1);
63+
assert.strictEqual(student1.getName(), '', "test 2 at setName");
64+
65+
// Test 3: userName is a valid string, should set the name correctly
66+
const student2 = new Student();
67+
const name3= 'Smith';
68+
student2.setName(name3);
69+
assert.strictEqual(student2.getName(), name3, "test 3 at setName");
70+
71+
// No need to throw an error; tests are implemented
72+
// throw new Error("Test not implemented");
1873
});
1974

2075
test("Test Student's getName", () => {
21-
// TODO
22-
throw new Error("Test not implemented");
76+
77+
// Test 1: Set a valid name and retrieve it
78+
const student0 = new Student();
79+
const name0 = "John";
80+
student0.setName(name0);
81+
assert.strictEqual(student0.getName(), name0, "test 1 at getName");
82+
83+
// Test 2: Set an invalid name (integer), getName() should return an empty string
84+
const student1 = new Student();
85+
student1.setName(1);
86+
assert.strictEqual(student1.getName(), '', "test 2 at getName");
87+
88+
// Test 3: Set an empty string as name, should return an empty string
89+
const student2 = new Student();
90+
student2.setName('');
91+
assert.strictEqual(student2.getName(), '', "test 3 at getName");
92+
93+
// Test 4: Default value of getName() before setting any name
94+
const student3 = new Student();
95+
assert.strictEqual(student3.getName(), '', "test 4 at getName");
96+
97+
// No need to throw an error; tests are implemented
98+
// throw new Error("Test not implemented");
2399
});

0 commit comments

Comments
 (0)