Moved namespaces to Basket.UnitTest project
This commit is contained in:
parent
6064e2710f
commit
136c1dcbc4
@ -1,155 +1,140 @@
|
||||
using Basket.API.IntegrationEvents.Events;
|
||||
using Basket.API.Model;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
||||
using Microsoft.eShopOnContainers.Services.Basket.API.Controllers;
|
||||
namespace UnitTest.Basket.Application;
|
||||
|
||||
using Microsoft.eShopOnContainers.Services.Basket.API.Model;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Claims;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
using IBasketIdentityService = Microsoft.eShopOnContainers.Services.Basket.API.Services.IIdentityService;
|
||||
|
||||
namespace UnitTest.Basket.Application
|
||||
public class BasketWebApiTest
|
||||
{
|
||||
public class BasketWebApiTest
|
||||
private readonly Mock<IBasketRepository> _basketRepositoryMock;
|
||||
private readonly Mock<IBasketIdentityService> _identityServiceMock;
|
||||
private readonly Mock<IEventBus> _serviceBusMock;
|
||||
private readonly Mock<ILogger<BasketController>> _loggerMock;
|
||||
|
||||
public BasketWebApiTest()
|
||||
{
|
||||
private readonly Mock<IBasketRepository> _basketRepositoryMock;
|
||||
private readonly Mock<IBasketIdentityService> _identityServiceMock;
|
||||
private readonly Mock<IEventBus> _serviceBusMock;
|
||||
private readonly Mock<ILogger<BasketController>> _loggerMock;
|
||||
_basketRepositoryMock = new Mock<IBasketRepository>();
|
||||
_identityServiceMock = new Mock<IBasketIdentityService>();
|
||||
_serviceBusMock = new Mock<IEventBus>();
|
||||
_loggerMock = new Mock<ILogger<BasketController>>();
|
||||
}
|
||||
|
||||
public BasketWebApiTest()
|
||||
{
|
||||
_basketRepositoryMock = new Mock<IBasketRepository>();
|
||||
_identityServiceMock = new Mock<IBasketIdentityService>();
|
||||
_serviceBusMock = new Mock<IEventBus>();
|
||||
_loggerMock = new Mock<ILogger<BasketController>>();
|
||||
}
|
||||
[Fact]
|
||||
public async Task Get_customer_basket_success()
|
||||
{
|
||||
//Arrange
|
||||
var fakeCustomerId = "1";
|
||||
var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);
|
||||
|
||||
[Fact]
|
||||
public async Task Get_customer_basket_success()
|
||||
{
|
||||
//Arrange
|
||||
var fakeCustomerId = "1";
|
||||
var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);
|
||||
_basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny<string>()))
|
||||
.Returns(Task.FromResult(fakeCustomerBasket));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
|
||||
_basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny<string>()))
|
||||
_serviceBusMock.Setup(x => x.Publish(It.IsAny<UserCheckoutAcceptedIntegrationEvent>()));
|
||||
|
||||
//Act
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
var actionResult = await basketController.GetBasketByIdAsync(fakeCustomerId);
|
||||
|
||||
//Assert
|
||||
Assert.Equal((actionResult.Result as OkObjectResult).StatusCode, (int)System.Net.HttpStatusCode.OK);
|
||||
Assert.Equal((((ObjectResult)actionResult.Result).Value as CustomerBasket).BuyerId, fakeCustomerId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Post_customer_basket_success()
|
||||
{
|
||||
//Arrange
|
||||
var fakeCustomerId = "1";
|
||||
var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);
|
||||
|
||||
_basketRepositoryMock.Setup(x => x.UpdateBasketAsync(It.IsAny<CustomerBasket>()))
|
||||
.Returns(Task.FromResult(fakeCustomerBasket));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
_serviceBusMock.Setup(x => x.Publish(It.IsAny<UserCheckoutAcceptedIntegrationEvent>()));
|
||||
|
||||
//Act
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
var actionResult = await basketController.UpdateBasketAsync(fakeCustomerBasket);
|
||||
|
||||
//Assert
|
||||
Assert.Equal((actionResult.Result as OkObjectResult).StatusCode, (int)System.Net.HttpStatusCode.OK);
|
||||
Assert.Equal((((ObjectResult)actionResult.Result).Value as CustomerBasket).BuyerId, fakeCustomerId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Doing_Checkout_Without_Basket_Should_Return_Bad_Request()
|
||||
{
|
||||
var fakeCustomerId = "2";
|
||||
_basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny<string>()))
|
||||
.Returns(Task.FromResult((CustomerBasket)null));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
|
||||
//Act
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as BadRequestResult;
|
||||
Assert.NotNull(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event()
|
||||
{
|
||||
var fakeCustomerId = "1";
|
||||
var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);
|
||||
|
||||
_basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny<string>()))
|
||||
.Returns(Task.FromResult(fakeCustomerBasket));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
|
||||
_serviceBusMock.Setup(x => x.Publish(It.IsAny<UserCheckoutAcceptedIntegrationEvent>()));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
|
||||
//Act
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
var actionResult = await basketController.GetBasketByIdAsync(fakeCustomerId);
|
||||
|
||||
//Assert
|
||||
Assert.Equal((actionResult.Result as OkObjectResult).StatusCode, (int)System.Net.HttpStatusCode.OK);
|
||||
Assert.Equal((((ObjectResult)actionResult.Result).Value as CustomerBasket).BuyerId, fakeCustomerId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Post_customer_basket_success()
|
||||
basketController.ControllerContext = new ControllerContext()
|
||||
{
|
||||
//Arrange
|
||||
var fakeCustomerId = "1";
|
||||
var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);
|
||||
|
||||
_basketRepositoryMock.Setup(x => x.UpdateBasketAsync(It.IsAny<CustomerBasket>()))
|
||||
.Returns(Task.FromResult(fakeCustomerBasket));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
_serviceBusMock.Setup(x => x.Publish(It.IsAny<UserCheckoutAcceptedIntegrationEvent>()));
|
||||
|
||||
//Act
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
var actionResult = await basketController.UpdateBasketAsync(fakeCustomerBasket);
|
||||
|
||||
//Assert
|
||||
Assert.Equal((actionResult.Result as OkObjectResult).StatusCode, (int)System.Net.HttpStatusCode.OK);
|
||||
Assert.Equal((((ObjectResult)actionResult.Result).Value as CustomerBasket).BuyerId, fakeCustomerId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Doing_Checkout_Without_Basket_Should_Return_Bad_Request()
|
||||
{
|
||||
var fakeCustomerId = "2";
|
||||
_basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny<string>()))
|
||||
.Returns(Task.FromResult((CustomerBasket)null));
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
|
||||
//Act
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as BadRequestResult;
|
||||
Assert.NotNull(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event()
|
||||
{
|
||||
var fakeCustomerId = "1";
|
||||
var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);
|
||||
|
||||
_basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny<string>()))
|
||||
.Returns(Task.FromResult(fakeCustomerBasket));
|
||||
|
||||
_identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);
|
||||
|
||||
var basketController = new BasketController(
|
||||
_loggerMock.Object,
|
||||
_basketRepositoryMock.Object,
|
||||
_identityServiceMock.Object,
|
||||
_serviceBusMock.Object);
|
||||
|
||||
basketController.ControllerContext = new ControllerContext()
|
||||
HttpContext = new DefaultHttpContext()
|
||||
{
|
||||
HttpContext = new DefaultHttpContext()
|
||||
{
|
||||
User = new ClaimsPrincipal(
|
||||
new ClaimsIdentity(new Claim[] {
|
||||
new Claim("sub", "testuser"),
|
||||
new Claim("unique_name", "testuser"),
|
||||
new Claim(ClaimTypes.Name, "testuser")
|
||||
}))
|
||||
}
|
||||
};
|
||||
User = new ClaimsPrincipal(
|
||||
new ClaimsIdentity(new Claim[] {
|
||||
new Claim("sub", "testuser"),
|
||||
new Claim("unique_name", "testuser"),
|
||||
new Claim(ClaimTypes.Name, "testuser")
|
||||
}))
|
||||
}
|
||||
};
|
||||
|
||||
//Act
|
||||
var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as AcceptedResult;
|
||||
//Act
|
||||
var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as AcceptedResult;
|
||||
|
||||
_serviceBusMock.Verify(mock => mock.Publish(It.IsAny<UserCheckoutAcceptedIntegrationEvent>()), Times.Once);
|
||||
_serviceBusMock.Verify(mock => mock.Publish(It.IsAny<UserCheckoutAcceptedIntegrationEvent>()), Times.Once);
|
||||
|
||||
Assert.NotNull(result);
|
||||
}
|
||||
Assert.NotNull(result);
|
||||
}
|
||||
|
||||
private CustomerBasket GetCustomerBasketFake(string fakeCustomerId)
|
||||
private CustomerBasket GetCustomerBasketFake(string fakeCustomerId)
|
||||
{
|
||||
return new CustomerBasket(fakeCustomerId)
|
||||
{
|
||||
return new CustomerBasket(fakeCustomerId)
|
||||
Items = new List<BasketItem>()
|
||||
{
|
||||
Items = new List<BasketItem>()
|
||||
{
|
||||
new BasketItem()
|
||||
}
|
||||
};
|
||||
}
|
||||
new BasketItem()
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1,130 +1,117 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.eShopOnContainers.WebMVC.Controllers;
|
||||
using Microsoft.eShopOnContainers.WebMVC.Services;
|
||||
using Microsoft.eShopOnContainers.WebMVC.ViewModels;
|
||||
using Moq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
using BasketModel = Microsoft.eShopOnContainers.WebMVC.ViewModels.Basket;
|
||||
namespace UnitTest.Basket.Application;
|
||||
|
||||
namespace UnitTest.Basket.Application
|
||||
public class CartControllerTest
|
||||
{
|
||||
public class CartControllerTest
|
||||
private readonly Mock<ICatalogService> _catalogServiceMock;
|
||||
private readonly Mock<IBasketService> _basketServiceMock;
|
||||
private readonly Mock<IIdentityParser<ApplicationUser>> _identityParserMock;
|
||||
private readonly Mock<HttpContext> _contextMock;
|
||||
|
||||
public CartControllerTest()
|
||||
{
|
||||
private readonly Mock<ICatalogService> _catalogServiceMock;
|
||||
private readonly Mock<IBasketService> _basketServiceMock;
|
||||
private readonly Mock<IIdentityParser<ApplicationUser>> _identityParserMock;
|
||||
private readonly Mock<HttpContext> _contextMock;
|
||||
_catalogServiceMock = new Mock<ICatalogService>();
|
||||
_basketServiceMock = new Mock<IBasketService>();
|
||||
_identityParserMock = new Mock<IIdentityParser<ApplicationUser>>();
|
||||
_contextMock = new Mock<HttpContext>();
|
||||
}
|
||||
|
||||
public CartControllerTest()
|
||||
[Fact]
|
||||
public async Task Post_cart_success()
|
||||
{
|
||||
//Arrange
|
||||
var fakeBuyerId = "1";
|
||||
var action = string.Empty;
|
||||
var fakeBasket = GetFakeBasket(fakeBuyerId);
|
||||
var fakeQuantities = new Dictionary<string, int>()
|
||||
{
|
||||
_catalogServiceMock = new Mock<ICatalogService>();
|
||||
_basketServiceMock = new Mock<IBasketService>();
|
||||
_identityParserMock = new Mock<IIdentityParser<ApplicationUser>>();
|
||||
_contextMock = new Mock<HttpContext>();
|
||||
}
|
||||
["fakeProdA"] = 1,
|
||||
["fakeProdB"] = 2
|
||||
};
|
||||
|
||||
[Fact]
|
||||
public async Task Post_cart_success()
|
||||
_basketServiceMock.Setup(x => x.SetQuantities(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
|
||||
_basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
|
||||
//Act
|
||||
var cartController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
|
||||
cartController.ControllerContext.HttpContext = _contextMock.Object;
|
||||
var actionResult = await cartController.Index(fakeQuantities, action);
|
||||
|
||||
//Assert
|
||||
var viewResult = Assert.IsType<ViewResult>(actionResult);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Post_cart_checkout_success()
|
||||
{
|
||||
//Arrange
|
||||
var fakeBuyerId = "1";
|
||||
var action = "[ Checkout ]";
|
||||
var fakeBasket = GetFakeBasket(fakeBuyerId);
|
||||
var fakeQuantities = new Dictionary<string, int>()
|
||||
{
|
||||
//Arrange
|
||||
var fakeBuyerId = "1";
|
||||
var action = string.Empty;
|
||||
var fakeBasket = GetFakeBasket(fakeBuyerId);
|
||||
var fakeQuantities = new Dictionary<string, int>()
|
||||
{
|
||||
["fakeProdA"] = 1,
|
||||
["fakeProdB"] = 2
|
||||
};
|
||||
["fakeProdA"] = 1,
|
||||
["fakeProdB"] = 2
|
||||
};
|
||||
|
||||
_basketServiceMock.Setup(x => x.SetQuantities(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
_basketServiceMock.Setup(x => x.SetQuantities(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
|
||||
_basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
_basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
|
||||
//Act
|
||||
var cartController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
|
||||
cartController.ControllerContext.HttpContext = _contextMock.Object;
|
||||
var actionResult = await cartController.Index(fakeQuantities, action);
|
||||
//Act
|
||||
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
|
||||
orderController.ControllerContext.HttpContext = _contextMock.Object;
|
||||
var actionResult = await orderController.Index(fakeQuantities, action);
|
||||
|
||||
//Assert
|
||||
var viewResult = Assert.IsType<ViewResult>(actionResult);
|
||||
}
|
||||
//Assert
|
||||
var redirectToActionResult = Assert.IsType<RedirectToActionResult>(actionResult);
|
||||
Assert.Equal("Order", redirectToActionResult.ControllerName);
|
||||
Assert.Equal("Create", redirectToActionResult.ActionName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Post_cart_checkout_success()
|
||||
[Fact]
|
||||
public async Task Add_to_cart_success()
|
||||
{
|
||||
//Arrange
|
||||
var fakeCatalogItem = GetFakeCatalogItem();
|
||||
|
||||
_basketServiceMock.Setup(x => x.AddItemToBasket(It.IsAny<ApplicationUser>(), It.IsAny<Int32>()))
|
||||
.Returns(Task.FromResult(1));
|
||||
|
||||
//Act
|
||||
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
|
||||
orderController.ControllerContext.HttpContext = _contextMock.Object;
|
||||
var actionResult = await orderController.AddToCart(fakeCatalogItem);
|
||||
|
||||
//Assert
|
||||
var redirectToActionResult = Assert.IsType<RedirectToActionResult>(actionResult);
|
||||
Assert.Equal("Catalog", redirectToActionResult.ControllerName);
|
||||
Assert.Equal("Index", redirectToActionResult.ActionName);
|
||||
}
|
||||
|
||||
private BasketModel GetFakeBasket(string buyerId)
|
||||
{
|
||||
return new BasketModel()
|
||||
{
|
||||
//Arrange
|
||||
var fakeBuyerId = "1";
|
||||
var action = "[ Checkout ]";
|
||||
var fakeBasket = GetFakeBasket(fakeBuyerId);
|
||||
var fakeQuantities = new Dictionary<string, int>()
|
||||
{
|
||||
["fakeProdA"] = 1,
|
||||
["fakeProdB"] = 2
|
||||
};
|
||||
BuyerId = buyerId
|
||||
};
|
||||
}
|
||||
|
||||
_basketServiceMock.Setup(x => x.SetQuantities(It.IsAny<ApplicationUser>(), It.IsAny<Dictionary<string, int>>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
|
||||
_basketServiceMock.Setup(x => x.UpdateBasket(It.IsAny<BasketModel>()))
|
||||
.Returns(Task.FromResult(fakeBasket));
|
||||
|
||||
//Act
|
||||
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
|
||||
orderController.ControllerContext.HttpContext = _contextMock.Object;
|
||||
var actionResult = await orderController.Index(fakeQuantities, action);
|
||||
|
||||
//Assert
|
||||
var redirectToActionResult = Assert.IsType<RedirectToActionResult>(actionResult);
|
||||
Assert.Equal("Order", redirectToActionResult.ControllerName);
|
||||
Assert.Equal("Create", redirectToActionResult.ActionName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Add_to_cart_success()
|
||||
private CatalogItem GetFakeCatalogItem()
|
||||
{
|
||||
return new CatalogItem()
|
||||
{
|
||||
//Arrange
|
||||
var fakeCatalogItem = GetFakeCatalogItem();
|
||||
|
||||
_basketServiceMock.Setup(x => x.AddItemToBasket(It.IsAny<ApplicationUser>(), It.IsAny<Int32>()))
|
||||
.Returns(Task.FromResult(1));
|
||||
|
||||
//Act
|
||||
var orderController = new CartController(_basketServiceMock.Object, _catalogServiceMock.Object, _identityParserMock.Object);
|
||||
orderController.ControllerContext.HttpContext = _contextMock.Object;
|
||||
var actionResult = await orderController.AddToCart(fakeCatalogItem);
|
||||
|
||||
//Assert
|
||||
var redirectToActionResult = Assert.IsType<RedirectToActionResult>(actionResult);
|
||||
Assert.Equal("Catalog", redirectToActionResult.ControllerName);
|
||||
Assert.Equal("Index", redirectToActionResult.ActionName);
|
||||
}
|
||||
|
||||
private BasketModel GetFakeBasket(string buyerId)
|
||||
{
|
||||
return new BasketModel()
|
||||
{
|
||||
BuyerId = buyerId
|
||||
};
|
||||
}
|
||||
|
||||
private CatalogItem GetFakeCatalogItem()
|
||||
{
|
||||
return new CatalogItem()
|
||||
{
|
||||
Id = 1,
|
||||
Name = "fakeName",
|
||||
CatalogBrand = "fakeBrand",
|
||||
CatalogType = "fakeType",
|
||||
CatalogBrandId = 2,
|
||||
CatalogTypeId = 5,
|
||||
Price = 20
|
||||
};
|
||||
}
|
||||
Id = 1,
|
||||
Name = "fakeName",
|
||||
CatalogBrand = "fakeBrand",
|
||||
CatalogType = "fakeType",
|
||||
CatalogBrandId = 2,
|
||||
CatalogTypeId = 5,
|
||||
Price = 20
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user