Hato Hone St John, Telecare

MSD Price Change Test Plan

71 test cases for the MSD price change at design v17: 29 positive, 19 negative and 23 edge. Each case gives the test data, steps, expected result and what to check on the record. All prices here are made-up examples.

  1. DraftAdd products, count
  2. Pricebook ConfirmedPrices increased
  3. PreviewedRun preview
  4. AppliedApply now
  5. SyncedSend to BC now
  6. ClosedReconcile, then close
Before you start
Set up before each run
  1. Check the old scheduled price change job is paused and no price change is in flight.
  2. Check the three price-update feeds and the billing transaction switch are on.
  3. Take a snapshot: pricebook entries, live schedules, order lines, orders (Action Required) and Upcoming bills.
  4. Check the test subscriptions cover the table below, and move bill days only with a saved revert file.
Test data
IdDataUse
TC-1Go-live = todayRuns that apply
PC-APrice change, 2 of 26 products raised 5%, for example $20.00 to $21.00, about 100 subscriptionsMost cases
PC-BSame as PC-A, go-live next weekApply gate
PC-CAll 26 products raised 5%, about 22,900 subscriptions in UATFull volume
UsersFinance user, Approver user, user with neither, Finance user who can't see the ordersPermissions
Known gaps: expected to fail until fixed

A review of the design against the code on 02-Nov-26 found these. Don't mark them as new defects. Retest each one after its fix.

CaseTestGap
VOL-05Reconcile and close at full volumeG1: the checks read over 50,000 rows when all products change, so they fail with a limit error. Expected to fail until fixed.
BL-05Bills dated go-live are at the new priceG2: the planned 05:30 Apply runs after both billing runs, and Apply can't start before go-live. Expected to fail until the timing is decided.
SB-09Retry works when many lines failG5: today this hits the 10,000 row update limit. Expected to fail until fixed.
AP-08An order cancelled after the preview is left aloneG6: Apply does not check the order status. Expected to fail until fixed.
PV-09A schedule with a future End Date is listedG7: today it is not picked up or listed. Expected to fail until fixed.
Exit criteria
0 of 71 done

Results save in this browser only. Download them to share.

Automated tests

Run first. A failure here stops the run.

AT-01

All price change Apex tests pass with coverage

PositiveHighDeveloper
Test data

No test data needed.

Steps
  1. Run every PriceChange test class in UAT, with code coverage turned on.
Expected
  • All tests pass.
  • Each price change class has at least 75% coverage.

Price list

Create the price change, count what customers pay today, confirm the new prices.

PL-01

Create a price change

PositiveHighFinance
Test data

Funder MSD, go-live date TC-1.

Steps
  1. Create a Price Change with a description, Funder and go-live date.
Expected
  • Status is Draft.
  • Price rule defaults to Bills dated on or after go-live.
  • The path shows step 1 and what to do next.
PL-02

Add products finds every MSD product

PositiveHighFinance
Test data

PC-A.

Steps
  1. Click Add products.
  2. Compare the list with the products that have live MSD subscriptions.
Expected
  • One row per product, including inactive and grandfathered ones that still bill.
  • Peripheral products are not added.
  • Each row shows its frequency and price group.
PL-03

Old price is what customers are billed today

PositiveHighFinance
Test data

A product where most subscriptions bill the same amount and a few differ.

Steps
  1. Wait for the count to finish, or click Count subscriptions.
Expected
  • Old price is the most common billed amount.
  • The row shows live subscriptions and how many differ.
Check on the record
  • A tie goes to the higher amount.
  • A product with no live subscription keeps its pricebook price.
PL-04

Draft status for each kind of product

EdgeMediumFinance
Test data

Products raised, not raised, with no live subscriptions, and with no pricebook entry.

Steps
  1. Open the price list in Draft.
Expected
  • Rows show New price, Unchanged, No live subscriptions or No entry.
  • The tiles add up to the number of rows.
PL-05

Prices increased is refused before the count

NegativeMediumFinance
Test data

A row with no count yet.

Steps
  1. Click Prices increased before the count finishes.
Expected
  • Refused, with a message to count the live subscriptions first.
  • Status stays Draft.
PL-06

Prices increased is refused with no pricebook entry

NegativeMediumFinance
Test data

A product with no Standard Price Book entry.

Steps
  1. Click Prices increased.
Expected
  • Refused, naming the product.
  • No new price is copied.
PL-07

Prices increased copies and locks the prices

PositiveHighFinance
Test data

PC-A after the count, with 2 products raised.

Steps
  1. Click Prices increased and confirm.
  2. Try to edit a new price on a row.
Expected
  • Incl and excl GST prices are copied from the pricebook, unchanged products too.
  • Status is Pricebook Confirmed.
  • The edit is refused: prices are locked.
Check on the record
  • The confirmed-on date is set.
  • No pricebook entry changed: last modified dates are as before.
PL-08

Return to Draft clears the prices

PositiveMediumFinance
Test data

PC-A at Pricebook Confirmed.

Steps
  1. Click Return to Draft and confirm.
Expected
  • Status is Draft.
  • New prices and the confirmed-on date are cleared.
PL-09

A row cannot be added after Draft

NegativeLowFinance
Test data

PC-A at Pricebook Confirmed.

Steps
  1. Try to add a product row.
Expected
  • Refused: products can only be added in Draft.
PL-10

A user with no price change permission cannot act

NegativeHighFinance
Test data

A test user without the Finance or Approver permission set.

Steps
  1. Open the price change as that user.
  2. Try Prices increased, Apply now and Send to BC now.
Expected
  • Each action is refused or disabled, with the reason shown.

Preview

Shows what will change. Preview must never change a billing record.

PV-01

Preview runs with a progress bar and moves on

PositiveHighFinance
Test data

PC-A at Pricebook Confirmed, 2 products changing.

Steps
  1. Click Run preview.
  2. Watch the progress bar until it finishes.
Expected
  • Progress shows step 1 of 2 Building lines, then 2 of 2 Counting coverage.
  • Status moves to Previewed by itself.
  • The header shows lines, to apply and exceptions.
PV-02

Only products whose price changes get lines

PositiveHighFinance
Test data

PC-A: 2 of 26 products changing.

Steps
  1. Open the Lines tab after the preview.
  2. Compare the line count with live subscriptions on the 2 products.
Expected
  • One line per live schedule of a changing product.
  • No line for a product keeping its price.
  • A check line counts subscriptions on products not changing.
PV-03

Preview changes no billing record

PositiveHighDeveloper
Test data

Snapshot taken before the preview.

Steps
  1. Compare schedules, order lines, orders and Upcoming bills with the snapshot.
Expected
  • 0 differences.
PV-04

Running the preview again adds no duplicates

PositiveHighFinance
Test data

PC-A at Previewed.

Steps
  1. Click Run preview again.
Expected
  • The line count is the same, with one line per schedule.
  • Lines are updated, not added.
PV-05

A product that stops changing loses its lines

EdgeMediumFinance
Test data

A preview with 3 products changing; then one is put back and the price change re-confirmed.

Steps
  1. Return to Draft, restore one price, click Prices increased, then run the preview again.
Expected
  • Lines that are only Already at the new price are gone.
  • Real exceptions stay as Skipped.
PV-06

Exceptions are skipped with a reason

EdgeHighFinance
Test data

A schedule with no Upcoming bill; an order line with two live schedules.

Steps
  1. Run the preview.
  2. Open Price Change Lines by status.
Expected
  • Not billing: no Upcoming bill.
  • Not the latest live schedule on this order line (only the older one).
  • Each is counted in the preview checks.
PV-07

A base product and its pendant bill on one schedule

EdgeMediumFinance
Test data

An order with a base product plus a $10 add-on and one live schedule.

Steps
  1. Run the preview.
  2. Open the line and read Item Prices.
Expected
  • One line for the schedule.
  • New amount = new base price + the add-on's current total.
  • Item Prices lists both order lines.
PV-08

An off-list amount moves to the new price

EdgeHighFinance
Test data

Live schedules on an older price, with and without an add-on, each with an Upcoming bill.

Steps
  1. Run the preview and open the lines.
  2. Click Apply now and read each schedule.
Expected
  • Each line is flagged Not at list price and stays To re-price.
  • After Apply: amount = new price x quantity + the add-on's current total.
PV-13

An off-list schedule with no Upcoming bill

EdgeHighFinance
Test data

A live schedule on an older price, On Hold, with no Upcoming bill.

Steps
  1. Run the preview.
  2. Release the hold and read the next bill.
Expected
  • The line is Skipped: Not billing.
  • Agree with Finance what the next bill should be. Today it stays at the old amount.
PV-09

A schedule with a future End Date is listed

EdgeMediumFinance
Known gap. G7: today it is not picked up or listed. Expected to fail until fixed.
Test data

A live schedule with an End Date next month.

Steps
  1. Run the preview and look in the checks.
Expected
  • It is listed for Finance.
PV-10

A changed go-live date makes the preview out of date

NegativeHighFinance
Test data

PC-A at Previewed.

Steps
  1. Change the go-live date.
  2. Try Apply now.
Expected
  • A message says prices, products or the go-live date changed.
  • Apply is refused until the preview runs again.
PV-11

A missing product is counted

NegativeMediumFinance
Test data

An MSD product with live subscriptions, removed from the price change.

Steps
  1. Run the preview.
Expected
  • Missing products tile shows 1.
  • Reconcile can't pass until it is fixed.
PV-12

A rerun after a partial Apply leaves Applied lines alone

NegativeHighFinance
Test data

PC-A with some lines Applied and one in Error, so the status stays Previewed.

Steps
  1. Click Run preview again.
Expected
  • The preview runs.
  • Applied lines keep their status, amounts and sync state.
  • The Error line is refreshed, and Apply now can retry it.
PV-14

A price change where nothing changes

EdgeHighFinance
Test data

A price change with all 26 products unchanged.

Steps
  1. Add products, count, click Prices increased, run the preview.
Expected
  • 0 lines, and status moves to Previewed.
  • Missing products = 0.

Apply

Re-prices Salesforce records in place. It sends nothing to Business Central.

AP-01

Apply is not available before go-live

NegativeHighFinance
Test data

PC-B: Previewed, go-live next week.

Steps
  1. Open the Apply card.
Expected
  • No line is due; the next due date is shown.
  • Apply now is disabled.
AP-02

Apply now re-prices one subscription correctly

PositiveHighFinance
Test data

PC-A, go-live today. Pick a weekly, a fortnightly and a monthly subscription.

Steps
  1. Note the old values.
  2. Click Apply now and confirm.
  3. Wait for it to finish.
Expected
  • Lines are Applied; status moves to Applied.
  • Records updated tiles count orders, order products and bills.
Check on the record
  • Schedule: amount = New Amount.
  • Order line: unit price = pricebook excl GST; line total = incl x quantity; GST = the difference.
  • Upcoming bill: rate, total, GST and list value are new.
  • Order: Action Required starts PRICE_CHANGE.
  • Order totals unchanged.
AP-03

No new schedule or bill, and the billing day holds

PositiveHighDeveloper
Test data

PC-A after Apply.

Steps
  1. Compare with the snapshot.
Expected
  • No schedule or bill created.
  • Start date, frequency, billing day and bank details unchanged.
  • End Date still blank.
AP-04

Only Upcoming bills dated from go-live change

EdgeHighDeveloper
Test data

A schedule with an Upcoming bill dated before go-live; others with Submitted, Invoiced and On Hold bills.

Steps
  1. Run Apply.
  2. Compare the bills with the snapshot.
Expected
  • An Upcoming bill dated on or after go-live is at the new price.
  • An Upcoming bill dated earlier stays at the old price.
  • Submitted, Invoiced and On Hold bills are untouched.
AP-05

Amount changed after the preview goes to Error

NegativeHighDeveloper
Test data

One test schedule: change its amount after the preview.

Steps
  1. Run Apply.
Expected
  • The line is in Error, with both amounts in the message.
  • Nothing on that order changed.
  • Other lines apply.
  • Status stays Previewed.
AP-06

Pricebook changed after confirmation goes to Error

NegativeHighDeveloper
Test data

One test product: change its pricebook price after the preview, then put it back.

Steps
  1. Run Apply.
  2. Restore the price and click Apply now again.
Expected
  • Lines of that product go to Error, naming the product and both prices.
  • The second Apply retries and applies them.
AP-07

A schedule ended after the preview goes to Error

NegativeMediumDeveloper
Test data

One test schedule: set an End Date after the preview.

Steps
  1. Run Apply.
Expected
  • The line is in Error, with the End Date in the message.
  • Nothing on that order changed.
AP-08

An order cancelled after the preview is left alone

NegativeHighDeveloper
Known gap. G6: Apply does not check the order status. Expected to fail until fixed.
Test data

One test order: not Activated after the preview, with its schedule End Date still blank.

Steps
  1. Run Apply.
Expected
  • The line is not applied, and the reason is shown.
  • Nothing on that order changed.
AP-09

Order line changed after the preview

NegativeMediumDeveloper
Test data

One test order line: quantity changed after the preview.

Steps
  1. Run Apply.
Expected
  • The line is in Error: the new prices don't add up to the preview's amount.
  • Nothing on that order changed.
AP-10

Apply works for a user who does not own the order

PositiveMediumFinance
Test data

A Finance test user who can't see the orders.

Steps
  1. Click Apply now as that user.
Expected
  • All due lines apply.
AP-11

Apply sends nothing to Business Central

PositiveHighDeveloper
Test data

PC-A after Apply, before Send.

Steps
  1. Read the sync messages and the lines.
Expected
  • No Price Change Sync Message exists.
  • Lines are Not Sent.
  • The next hourly feeds may still carry these records; note what they send.
AP-12

GST and rounding are right

EdgeHighFinance
Test data

Price change with excl GST to 4 decimal places; a line with quantity 2.

Steps
  1. Read the order line and bill after Apply.
Expected
  • Incl = pricebook incl x quantity, to the cent.
  • GST = incl minus excl, to the cent.
  • Schedule amount = the sum of the lines.

Send to BC

Sends schedules, order lines and orders through the three price-update feeds.

SB-01

Send to BC now sends three messages per chunk

PositiveHighFinance
Test data

PC-A after Apply, about 100 lines.

Steps
  1. Click Send to BC now and confirm.
  2. Watch the progress.
Expected
  • 3 messages: Billing schedules, Order lines, Orders, in that order.
  • Each message answers 200 or 201.
  • Lines are Sent; status moves to Synced.
Check on the record
  • Feeds Sent on each line = schedule;line;order.
  • Latest messages link to their integration logs.
SB-02

A larger run splits at 200 lines

EdgeHighDeveloper
Test data

At least 201 applied lines.

Steps
  1. Send, then read the sync messages.
Expected
  • 2 chunks, 6 messages.
  • No message carries more than 200 lines.
SB-03

Messages hold prices and no personal or health data

PositiveHighDeveloper
Test data

One message per feed from SB-01.

Steps
  1. Open the request in the integration log.
Expected
  • Schedule: id, order, order number, status, amount.
  • Order line: unit price, list price, line total, GST, quantity.
  • Order: totals and Action Required.
  • No wearer, date of birth, NHI or phone data.
SB-04

A rejected feed marks the line Failed

NegativeHighDeveloper
Test data

A feed that AIS rejects, arranged with the AIS team, or the Apex test.

Steps
  1. Send.
Expected
  • Lines go to Failed, with the feed and code in the error.
  • A failed Sync Message is recorded.
  • Status stays Applied.
SB-05

Retry failed sends only what is missing

PositiveHighFinance
Test data

Lines failed on one feed from SB-04.

Steps
  1. Click Retry failed.
Expected
  • Only the missing feed is sent.
  • Lines become Sent once all three are in.
  • Status moves to Synced.
SB-06

A missing log means not confirmed

NegativeMediumDeveloper
Test data

The Apex test, or a send with no log.

Steps
  1. Read the line and the message.
Expected
  • The line is Failed: not confirmed as sent.
  • It is never marked Sent without a 200 or 201.
SB-07

A switched-off feed sends nothing

NegativeMediumDeveloper
Test data

Apex test only. Don't turn the switch off in UAT.

Steps
  1. Run the test.
Expected
  • Lines are Failed, and the message says the switch is off.
SB-08

Send is refused while another job runs

NegativeMediumFinance
Test data

Apply or Send running.

Steps
  1. Try Send to BC now.
Expected
  • Disabled, saying a run is in progress.
SB-09

Retry works when many lines fail

EdgeMediumDeveloper
Known gap. G5: today this hits the 10,000 row update limit. Expected to fail until fixed.
Test data

More than 10,000 failed lines (an AIS outage).

Steps
  1. Click Retry failed.
Expected
  • All failed lines are sent again.
SB-10

Hourly jobs repeating the same values is safe

EdgeMediumBC team
Test data

The hour after SB-01.

Steps
  1. Check what the hourly feeds sent.
  2. Check the same orders in BC test.
Expected
  • BC holds the same prices.
  • No duplicate price line or invoice.
SB-11

BC applies the new prices

PositiveHighBC team
Test data

The orders from SB-01.

Steps
  1. Check 5 orders of each frequency in BC test.
Expected
  • Schedule amount, unit price and line total match Salesforce.
  • BC reads unit price and line total, not list price.
SB-12

BC accepts a resend of the same message

EdgeHighBC team
Test data

One message resent by the AIS team.

Steps
  1. Check the same orders in BC test.
Expected
  • No duplicate and no change.

Billing

The real test: bills go out at the new price.

BL-01

The billing run sends the new price

PositiveHighDeveloper
Test data

Applied subscriptions with an Upcoming bill dated today.

Steps
  1. Let the next billing run take them, or run it with an agreed go.
Expected
  • Bills are Submitted at the new amount.
  • The billing message carries the new amount.
BL-02

The next bill is created at the new price

PositiveHighDeveloper
Test data

The bills from BL-01.

Steps
  1. Read the next Upcoming bill on each schedule.
Expected
  • One next bill, at the new price, on the same schedule.
  • Billing period follows on, with the same billing day.
BL-03

BC invoices match

PositiveHighBC team
Test data

The bills from BL-01.

Steps
  1. Compare the invoices in BC test.
Expected
  • Invoice amount = bill amount.
  • No duplicate invoice.
BL-04

Every frequency and billing type

PositiveHighFinance
Test data

Weekly, fortnightly and monthly; in arrears and in advance.

Steps
  1. Run AP-02 and BL-01 for each kind.
Expected
  • Each has its first bill dated on or after go-live at the new price.
  • An in-arrears period straddling go-live is billed in full at the new price.
BL-05

Bills dated go-live are at the new price

EdgeHighDeveloper
Known gap. G2: the planned 05:30 Apply runs after both billing runs, and Apply can't start before go-live. Expected to fail until the timing is decided.
Test data

A subscription with a bill dated the go-live day, and the 01:00 and 03:00 billing runs.

Steps
  1. Follow the go-live runbook timing in UAT.
  2. Read the bill after the 03:00 run.
Expected
  • Apply finished before the billing run.
  • The bill is at the new price.
BL-06

A new order after the price rise

PositiveMediumFinance
Test data

A new MSD order through the normal channel.

Steps
  1. Create it and read its schedule.
Expected
  • It bills at the new price.
  • Finance Q4: website, TIS and quick create pick the price up.
BL-07

An old-price order placed after the preview is caught

EdgeHighFinance
Test data

A new order at the old price, activated after the preview.

Steps
  1. Click Check now.
  2. Click Apply now.
Expected
  • A late line appears for it.
  • Apply re-prices it, and Send to BC now sends it.
BL-08

Cancel, swap and holiday still work after Apply

PositiveMediumFinance
Test data

Applied subscriptions.

Steps
  1. Cancel one service, swap one product, add a billing holiday.
Expected
  • Each works as usual.
  • One live schedule per subscription.

Reconcile and close

Checks replace the 3-week watch.

RC-01

Checks run after Send

PositiveHighFinance
Test data

PC-A at Synced.

Steps
  1. Open Reconcile and close.
Expected
  • Products, coverage, applied, sent and nothing at the old price are ticked.
  • First bills show when they are due.
  • Close is disabled.
RC-02

Check now finds a schedule left at the old price

NegativeHighDeveloper
Test data

One applied test schedule set back to the old amount.

Steps
  1. Click Check now.
Expected
  • Left at old price = 1.
  • Close stays disabled.
RC-03

First bill checks move on per frequency

EdgeHighFinance
Test data

PC-A, after each first-bill date.

Steps
  1. Click Check now on each date, or in a test with dates moved.
Expected
  • Each frequency goes from due to OK.
  • A wrong amount shows as at old price.
RC-04

A bill on hold at the old price

EdgeMediumFinance
Test data

An applied subscription with an On Hold bill dated from go-live.

Steps
  1. Click Check now.
Expected
  • Agree with Finance if this should block Close.
  • Today it counts as at old price, so Close stays disabled.
RC-05

Close works when every check passes

PositiveHighFinance
Test data

A small price change with all checks ticked.

Steps
  1. Click Close price change.
Expected
  • Status is Closed.
  • No further check or late-line sweep runs.
RC-06

Close is refused while a check fails

NegativeHighFinance
Test data

A price change with one failed line.

Steps
  1. Try Close price change.
Expected
  • Disabled or refused, saying every check must be ticked.

Full volume

Largest runs so far: Apply 1,506 lines, feed send 99. Prod is about 43,000.

VOL-01

Preview every live subscription

EdgeHighFinance
Test data

All 26 products raised in UAT: 22,881 live subscriptions.

Steps
  1. Run the preview and time it.
Expected
  • One line per live schedule.
  • No errors. Record the run time.
VOL-02

Apply every line

EdgeHighFinance
Test data

VOL-01 lines.

Steps
  1. Click Apply now and time it.
  2. Stop before 01:00, or roll back.
Expected
  • All lines applied or explained.
  • Record the run time; scale it to about 43,000.
  • No record-lock errors.
VOL-03

Send every line

EdgeHighFinance
Test data

VOL-02 lines, about 345 messages. Agree the count with BC first.

Steps
  1. Click Send to BC now and time it.
Expected
  • All messages answer 200 or 201.
  • Status moves to Synced.
  • Record the run time.
VOL-04

Panels load at full volume

EdgeHighFinance
Test data

VOL-03 data.

Steps
  1. Open the Lines tab; refresh.
Expected
  • The preview and apply panels load with correct counts, with no limit errors.
VOL-05

Reconcile and close at full volume

EdgeHighFinance
Known gap. G1: the checks read over 50,000 rows when all products change, so they fail with a limit error. Expected to fail until fixed.
Test data

VOL-03 data.

Steps
  1. Open Reconcile and close; click Check now.
Expected
  • Checks show, and Left at old price = 0.
  • Close works once all pass.

Roll back

Restore UAT after every run that raised prices.

RB-01

Restore from the snapshot

PositiveHighDeveloper
Test data

Snapshot from setup.

Steps
  1. Restore the pricebook entries.
  2. Update only rows that differ: schedules, order lines, Upcoming bills, orders.
  3. Compare again.
Expected
  • 0 differences, apart from bills already billed.
  • New Upcoming bills are at the old price.
RB-02

Delete the test price change

PositiveMediumDeveloper
Test data

After RB-01.

Steps
  1. Back up, then delete lines, products and the header, in that order.
Expected
  • The header can't be deleted while lines exist.
  • No test price change is left.
RB-03

Reset BC test

PositiveHighBC team
Test data

The list of orders and bills sent.

Steps
  1. Reverse or re-send them in BC test.
  2. Credit any invoice raised at the test price.
Expected
  • BC test matches Salesforce.