شماره تماس 09336863931 | 09178169907 پست الکترونیک provid.ir@gmail.com

آموزش عملی و پروژه محور Domain Driven Design و CQRS #10

آموزش عملی و پروژه محور Domain Driven Design و CQRS #10 را در این قسمت از وبسایت آموزش برنامه نویسی پرووید دانلود کنید.

در قسمت بعدی سه تست بسیار جالب خواهیم نوشت. یک تست برای ثبت سفارشی که فقط حاوی نوشیدنی است یک تست برای سفارشی که فقط حاوی غذا است و یک تست برای سفارشی که حاوی مقداری غذا و همچنین نوشیدنی است.

[Test]
public void CanPlaceDrinksOrder()
{
    Test(
        Given(new TabOpened
        {
            Id = testId,
            TableNumber = testTable,
            Waiter = testWaiter
        }),
        When(new PlaceOrder
        {
            Id = testId,
            Items = new List<OrderedItem>
        }),
        Then(new DrinksOrdered
        {
            Id = testId,
            Items = new List<OrderedItem> { testDrink1, testDrink2 }
        }));
}

[Test]
public void CanPlaceFoodOrder()
{
    Test(
        Given(new TabOpened
        {
            Id = testId,
            TableNumber = testTable,
            Waiter = testWaiter
        }),
        When(new PlaceOrder
        {
            Id = testId,
            Items = new List<OrderedItem> { testFood1, testFood1 }
        }),
        Then(new FoodOrdered
        {
            Id = testId,
            Items = new List<OrderedItem> { testFood1, testFood1 }
        }));
}

[Test]
public void CanPlaceFoodAndDrinkOrder()
{
    Test(
        Given(new TabOpened
        {
            Id = testId,
            TableNumber = testTable,
            Waiter = testWaiter
        }),
        When(new PlaceOrder
        {
            Id = testId,
            Items = new List<OrderedItem> { testFood1, testDrink2 }
        }),
        Then(new DrinksOrdered
        {
            Id = testId,
            Items = new List<OrderedItem> { testDrink2 }
        },
        new FoodOrdered
        {
            Id = testId,
            Items = new List<OrderedItem> { testFood1 }
        }));
}

هدف ما این است که اطمینان حاصل کنیم که آیتم ها در Event های به درستی دسته بندی شوند و سفارش هایی که حاوی غذا و یا نوشیدنی خالی هستند Event ی را ایجاد نکنند. همه این سه تست در ابتدا با شکست روبرو خواهند شد. در توضیحات علت شکست گفته می شود که TabAggregate نمی ‌داند چطور TabOpened را اعمال کند.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

CLOSE
CLOSE