# 1. Bulk License Purchase — Test Cases

User Type: **Training Institute**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: bulk_license_purchase.md — every feature, sub-feature, and rule covered

## Test Execution Policy

- Zero tolerance: any deviation from the documented behavior is a defect.
- Every failed test is logged with a Bug ID, the feature, the sub-feature, the expected vs actual result, and the severity; 100% of bugs are fixed before the group passes.
- 100% pass rate is required for the group to be marked complete.

## Coverage Matrix

| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 1.1 | Bulk license purchase flow | TC-TI-3-01-001 |
| 1.1 | License type selection | TC-TI-3-01-002 |
| 1.1 | Quantity selection | TC-TI-3-01-003 |
| 1.1 | Term selection (monthly, annual) | TC-TI-3-01-004 |
| 1.1 | Licenses added to the pool on payment | TC-TI-3-01-005 |
| 1.1 | Purchase confirmation shown | TC-TI-3-01-006 |
| 1.1 | Purchase available on web and mobile | TC-TI-3-01-007 |
| 1.1 | Purchase event logging (initiated, completed) | TC-TI-3-01-008 |
| 1.1 | Audit logging of the bulk license purchase | TC-TI-3-01-009 |
| 1.1 | Rule: The licenses are added to the pool immediately on successful payment. | TC-TI-3-01-001 |
| 1.1 | Rule: The quantity has a minimum and a maximum. | TC-TI-3-01-002 |
| 1.1 | Rule: Purchase events (initiated, completed) are logged with the account and the timestamp. | TC-TI-3-01-003 |
| 1.1 | Rule: The bulk license purchase is audit-logged with the account and the timestamp. | TC-TI-3-01-004 |
| 1.2 | License tiers list | TC-TI-3-01-010 |
| 1.2 | Per-student pricing shown | TC-TI-3-01-011 |
| 1.2 | Volume discounts shown | TC-TI-3-01-012 |
| 1.2 | Features included per tier | TC-TI-3-01-013 |
| 1.2 | Compare tiers side by side | TC-TI-3-01-014 |
| 1.2 | Select a tier for purchase | TC-TI-3-01-015 |
| 1.2 | Tiers available on web and mobile | TC-TI-3-01-016 |
| 1.2 | Tiers event logging (viewed, selected) | TC-TI-3-01-017 |
| 1.2 | Audit logging of the license tiers and plans | TC-TI-3-01-018 |
| 1.2 | Rule: The volume discounts apply at quantity thresholds. | TC-TI-3-01-010 |
| 1.2 | Rule: The features included per tier are shown. | TC-TI-3-01-011 |
| 1.2 | Rule: Tiers events (viewed, selected) are logged with the account and the timestamp. | TC-TI-3-01-012 |
| 1.2 | Rule: The license tiers and plans is audit-logged with the account and the timestamp. | TC-TI-3-01-013 |
| 1.3 | Purchase history list | TC-TI-3-01-019 |
| 1.3 | Date, quantity, tier, and amount per purchase | TC-TI-3-01-020 |
| 1.3 | Filter by period | TC-TI-3-01-021 |
| 1.3 | Export the history | TC-TI-3-01-022 |
| 1.3 | History paginated | TC-TI-3-01-023 |
| 1.3 | History available on web and mobile | TC-TI-3-01-024 |
| 1.3 | History event logging (viewed, exported) | TC-TI-3-01-025 |
| 1.3 | Audit logging of the purchase history | TC-TI-3-01-026 |
| 1.3 | Rule: The history is filterable by period. | TC-TI-3-01-019 |
| 1.3 | Rule: The history can be exported. | TC-TI-3-01-020 |
| 1.3 | Rule: History events (viewed, exported) are logged with the account and the timestamp. | TC-TI-3-01-021 |
| 1.3 | Rule: The purchase history is audit-logged with the account and the timestamp. | TC-TI-3-01-022 |

## 1.1 Bulk License Purchase

### TC-TI-3-01-001 — Bulk license purchase flow
**Type:** Positive
**Covers:** 1.1 → Bulk license purchase flow; Rule: The licenses are added to the pool immediately on successful payment.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Bulk license purchase flow.
2. Observe the result and verify the full behavior: Bulk license purchase flow.
**Expected Result:** Bulk license purchase flow — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-01-002 — License type selection
**Type:** Positive
**Covers:** 1.1 → License type selection; Rule: The quantity has a minimum and a maximum.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: License type selection.
2. Observe the result and verify the full behavior: License type selection.
**Expected Result:** License type selection — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-003 — Quantity selection
**Type:** Positive
**Covers:** 1.1 → Quantity selection; Rule: Purchase events (initiated, completed) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Quantity selection.
2. Observe the result and verify the full behavior: Quantity selection.
**Expected Result:** Quantity selection — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-004 — Term selection (monthly, annual)
**Type:** Positive
**Covers:** 1.1 → Term selection (monthly, annual); Rule: The bulk license purchase is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Term selection (monthly, annual).
2. Observe the result and verify the full behavior: Term selection (monthly, annual).
**Expected Result:** Term selection (monthly, annual) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-005 — Licenses added to the pool on payment
**Type:** Positive
**Covers:** 1.1 → Licenses added to the pool on payment
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Licenses added to the pool on payment.
2. Observe the result and verify the full behavior: Licenses added to the pool on payment.
**Expected Result:** Licenses added to the pool on payment — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-006 — Purchase confirmation shown
**Type:** Positive
**Covers:** 1.1 → Purchase confirmation shown
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Purchase confirmation shown.
2. Observe the result and verify the full behavior: Purchase confirmation shown.
**Expected Result:** Purchase confirmation shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-007 — Purchase available on web and mobile
**Type:** Positive
**Covers:** 1.1 → Purchase available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Purchase available on web and mobile.
2. Observe the result and verify the full behavior: Purchase available on web and mobile.
**Expected Result:** Purchase available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-008 — Purchase event logging (initiated, completed)
**Type:** Positive
**Covers:** 1.1 → Purchase event logging (initiated, completed)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Purchase event logging (initiated, completed).
2. Observe the result and verify the full behavior: Purchase event logging (initiated, completed).
**Expected Result:** Purchase event logging (initiated, completed) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-009 — Audit logging of the bulk license purchase
**Type:** Positive
**Covers:** 1.1 → Audit logging of the bulk license purchase
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the bulk license purchase action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The bulk license purchase action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 1.2 License Tiers & Plans

### TC-TI-3-01-010 — License tiers list
**Type:** Positive
**Covers:** 1.2 → License tiers list; Rule: The volume discounts apply at quantity thresholds.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: License tiers list.
2. Observe the result and verify the full behavior: License tiers list.
**Expected Result:** License tiers list — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-01-011 — Per-student pricing shown
**Type:** Positive
**Covers:** 1.2 → Per-student pricing shown; Rule: The features included per tier are shown.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Per-student pricing shown.
2. Observe the result and verify the full behavior: Per-student pricing shown.
**Expected Result:** Per-student pricing shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-012 — Volume discounts shown
**Type:** Positive
**Covers:** 1.2 → Volume discounts shown; Rule: Tiers events (viewed, selected) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Volume discounts shown.
2. Observe the result and verify the full behavior: Volume discounts shown.
**Expected Result:** Volume discounts shown — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-013 — Features included per tier
**Type:** Positive
**Covers:** 1.2 → Features included per tier; Rule: The license tiers and plans is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Features included per tier.
2. Observe the result and verify the full behavior: Features included per tier.
**Expected Result:** Features included per tier — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-014 — Compare tiers side by side
**Type:** Positive
**Covers:** 1.2 → Compare tiers side by side
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Compare tiers side by side.
2. Observe the result and verify the full behavior: Compare tiers side by side.
**Expected Result:** Compare tiers side by side — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-015 — Select a tier for purchase
**Type:** Positive
**Covers:** 1.2 → Select a tier for purchase
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Select a tier for purchase.
2. Observe the result and verify the full behavior: Select a tier for purchase.
**Expected Result:** Select a tier for purchase — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-016 — Tiers available on web and mobile
**Type:** Positive
**Covers:** 1.2 → Tiers available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Tiers available on web and mobile.
2. Observe the result and verify the full behavior: Tiers available on web and mobile.
**Expected Result:** Tiers available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-017 — Tiers event logging (viewed, selected)
**Type:** Positive
**Covers:** 1.2 → Tiers event logging (viewed, selected)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Tiers event logging (viewed, selected).
2. Observe the result and verify the full behavior: Tiers event logging (viewed, selected).
**Expected Result:** Tiers event logging (viewed, selected) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-018 — Audit logging of the license tiers and plans
**Type:** Positive
**Covers:** 1.2 → Audit logging of the license tiers and plans
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the license tiers and plans action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The license tiers and plans action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical


## 1.3 Purchase History

### TC-TI-3-01-019 — Purchase history list
**Type:** Positive
**Covers:** 1.3 → Purchase history list; Rule: The history is filterable by period.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Purchase history list.
2. Observe the result and verify the full behavior: Purchase history list.
**Expected Result:** Purchase history list — delivered exactly as documented.
**Priority:** Critical

### TC-TI-3-01-020 — Date, quantity, tier, and amount per purchase
**Type:** Positive
**Covers:** 1.3 → Date, quantity, tier, and amount per purchase; Rule: The history can be exported.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Date, quantity, tier, and amount per purchase.
2. Observe the result and verify the full behavior: Date, quantity, tier, and amount per purchase.
**Expected Result:** Date, quantity, tier, and amount per purchase — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-021 — Filter by period
**Type:** Positive
**Covers:** 1.3 → Filter by period; Rule: History events (viewed, exported) are logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Filter by period.
2. Observe the result and verify the full behavior: Filter by period.
**Expected Result:** Filter by period — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-022 — Export the history
**Type:** Positive
**Covers:** 1.3 → Export the history; Rule: The purchase history is audit-logged with the account and the timestamp.
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: Export the history.
2. Observe the result and verify the full behavior: Export the history.
**Expected Result:** Export the history — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-023 — History paginated
**Type:** Positive
**Covers:** 1.3 → History paginated
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: History paginated.
2. Observe the result and verify the full behavior: History paginated.
**Expected Result:** History paginated — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-024 — History available on web and mobile
**Type:** Positive
**Covers:** 1.3 → History available on web and mobile
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: History available on web and mobile.
2. Observe the result and verify the full behavior: History available on web and mobile.
**Expected Result:** History available on web and mobile — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-025 — History event logging (viewed, exported)
**Type:** Positive
**Covers:** 1.3 → History event logging (viewed, exported)
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, set up the precondition and perform: History event logging (viewed, exported).
2. Observe the result and verify the full behavior: History event logging (viewed, exported).
**Expected Result:** History event logging (viewed, exported) — delivered exactly as documented.
**Priority:** High

### TC-TI-3-01-026 — Audit logging of the purchase history
**Type:** Positive
**Covers:** 1.3 → Audit logging of the purchase history
**Preconditions:** A Training Institute account is active and the Training Institute is in the state required for this behavior.
**Steps:**
1. As a Training Institute, perform the purchase history action.
2. Open the audit log and verify the entry for the action.
**Expected Result:** The purchase history action is recorded in the audit log with the account and the timestamp.
**Priority:** Critical
