diff --git a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj
index 15747b4..9f9a280 100644
--- a/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj
+++ b/src/API/AdventureWorksDemo.API/AdventureWorksDemo.API.csproj
@@ -9,10 +9,11 @@
-
-
-
-
+
+
+
+
+
diff --git a/src/API/AdventureWorksDemo.API/appsettings.Development.json b/src/API/AdventureWorksDemo.API/appsettings.Development.json
index b4185ce..edcc788 100644
--- a/src/API/AdventureWorksDemo.API/appsettings.Development.json
+++ b/src/API/AdventureWorksDemo.API/appsettings.Development.json
@@ -6,6 +6,6 @@
}
},
"ConnectionStrings": {
- "Target": "Data Source=localhost,1433;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=;TrustServerCertificate=True;"
+ "Target": "Data Source=localhost,1433;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=;Encrypt=false;TrustServerCertificate=True;"
}
}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj
index 21aa0e3..9a5cca8 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj
+++ b/src/API/AdventureWorksDemo.Common.Tests/AdventureWorksDemo.Common.Tests.csproj
@@ -11,21 +11,31 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
-
-
-
-
+
+
+
+
+
+
+ PreserveNewest
+
+
+
diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL
new file mode 100644
index 0000000..1695d7f
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/BackUpTestDatabase.SQL
@@ -0,0 +1,5 @@
+DBCC SHRINKDATABASE(N'$TARGET_DB_NAME', 5 );
+
+ BACKUP DATABASE [$TARGET_DB_NAME] TO DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH NOFORMAT, INIT,
+ NAME = N'AdventureWorks-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
+;
diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql
index 3e6960e..a3cc882 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql
+++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/Prep_DeleteRecords.sql
@@ -20,9 +20,9 @@ GO
DROP DATABASE [AdventureWorks]
USE [master]
-RESTORE DATABASE [AdventureWorks] FROM DISK = N'/var/opt/mssql/backup/SampleDatabase.bak' WITH FILE = 1,
- MOVE N'AdventureWorksLT2022_Data' TO N'/var/opt/mssql/data/AdventureWorks.mdf',
- MOVE N'AdventureWorksLT2022_Log' TO N'/var/opt/mssql/data/AdventureWorks_log.ldf',
+RESTORE DATABASE [AdventureWorks] FROM DISK = N'/var/opt/mssql/backup/AdventureWorks.bak' WITH FILE = 1,
+ MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/AdventureWorks.mdf',
+ MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/AdventureWorks_log.ldf',
NOUNLOAD,
STATS = 5
@@ -33,65 +33,65 @@ declare @Customers as table(customerId int);
insert Into @Customers
select top 7 max(CustomerID) CustomerId
- from [AdventureWorks].[SalesLT].[SalesOrderDetail] [d]
- Inner Join [AdventureWorks].[SalesLT].[SalesOrderHeader] [h] on h.SalesOrderID= d.SalesOrderID
+ from [AdventureWorks].[Production].[SalesOrderDetail] [d]
+ Inner Join [AdventureWorks].[Production].[SalesOrderHeader] [h] on h.SalesOrderID= d.SalesOrderID
GROUP by d.SalesOrderID
Having count([d].salesOrderDetailId) <10
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[SalesOrderHeader]';
+PRINT 'Delete From [AdventureWorks].[Production].[SalesOrderHeader]';
DELETE
-- select *
- from [AdventureWorks].[SalesLT].[SalesOrderHeader] where CustomerID not in (select CustomerId from @Customers);
+ from [AdventureWorks].[Production].[SalesOrderHeader] where CustomerID not in (select CustomerId from @Customers);
-- -- --
---------PRINT 'Delete From [AdventureWorks].[SalesLT].[SalesOrderDetail]';
+--------PRINT 'Delete From [AdventureWorks].[Production].[SalesOrderDetail]';
--------DELETE
-------- -- select *
--------- from [AdventureWorks].[SalesLT].[SalesOrderDetail] where SalesOrderID not in (select SalesOrderID from [AdventureWorks].[SalesLT].[SalesOrderHeader]);
+-------- from [AdventureWorks].[Production].[SalesOrderDetail] where SalesOrderID not in (select SalesOrderID from [AdventureWorks].[Production].[SalesOrderHeader]);
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[CustomerAddress]';
+PRINT 'Delete From [AdventureWorks].[Production].[CustomerAddress]';
DELETE
-- select *
- from [AdventureWorks].[SalesLT].[CustomerAddress] where CustomerID not in (select CustomerId from @Customers);
+ from [AdventureWorks].[Production].[CustomerAddress] where CustomerID not in (select CustomerId from @Customers);
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[Address]';
+PRINT 'Delete From [AdventureWorks].[Production].[Address]';
DELETE
-- select *
- from [AdventureWorks].[SalesLT].[Customer] where CustomerID not in (select CustomerId from @Customers);
+ from [AdventureWorks].[Production].[Customer] where CustomerID not in (select CustomerId from @Customers);
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[Customer]';
+PRINT 'Delete From [AdventureWorks].[Production].[Customer]';
DELETE
-- select *
- from [AdventureWorks].[SalesLT].[Address] where AddressID not in (select AddressID from [AdventureWorks].[SalesLT].[CustomerAddress])
+ from [AdventureWorks].[Production].[Address] where AddressID not in (select AddressID from [AdventureWorks].[Production].[CustomerAddress])
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[Product]';
+PRINT 'Delete From [AdventureWorks].[Production].[Product]';
DELETE
-- select *
- FROM [AdventureWorks].[SalesLT].[Product] where productId in
- (select top 99 percent productId from [AdventureWorks].[SalesLT].[Product] where ProductId not in (select ProductId from [AdventureWorks].[SalesLT].[SalesOrderDetail]) order by ProductId)
+ FROM [AdventureWorks].[Production].[Product] where productId in
+ (select top 99 percent productId from [AdventureWorks].[Production].[Product] where ProductId not in (select ProductId from [AdventureWorks].[Production].[SalesOrderDetail]) order by ProductId)
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductModelProductDescription]';
+PRINT 'Delete From [AdventureWorks].[Production].[ProductModelProductDescription]';
DELETE
-- select *
- FROM [AdventureWorks].[SalesLT].[ProductModelProductDescription] where productModelId Not in (select productModelId from [AdventureWorks].[SalesLT].[Product] )
+ FROM [AdventureWorks].[Production].[ProductModelProductDescription] where productModelId Not in (select productModelId from [AdventureWorks].[Production].[Product] )
or [Culture] not in ('en','fr');
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductDescription]';
+PRINT 'Delete From [AdventureWorks].[Production].[ProductDescription]';
DELETE
-- select *
- FROM [AdventureWorks].[SalesLT].[ProductDescription] where [ProductDescriptionID] Not in (select [ProductDescriptionID] from [AdventureWorks].[SalesLT].[ProductModelProductDescription] )
+ FROM [AdventureWorks].[Production].[ProductDescription] where [ProductDescriptionID] Not in (select [ProductDescriptionID] from [AdventureWorks].[Production].[ProductModelProductDescription] )
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductModel]';
+PRINT 'Delete From [AdventureWorks].[Production].[ProductModel]';
DELETE
-- select *
- FROM [AdventureWorks].[SalesLT].[ProductModel] where productModelId Not in (select productModelId from [AdventureWorks].[SalesLT].[Product] )
+ FROM [AdventureWorks].[Production].[ProductModel] where productModelId Not in (select productModelId from [AdventureWorks].[Production].[Product] )
-- -- --
-PRINT 'Delete From [AdventureWorks].[SalesLT].[ProductCategory]';
+PRINT 'Delete From [AdventureWorks].[Production].[ProductCategory]';
DELETE
-- select *
- FROM [AdventureWorks].[SalesLT].[ProductCategory] where ProductCategoryID Not in (select ProductCategoryID from [AdventureWorks].[SalesLT].[Product] )
+ FROM [AdventureWorks].[Production].[ProductCategory] where ProductCategoryID Not in (select ProductCategoryID from [AdventureWorks].[Production].[Product] )
AND ParentProductCategoryID = null
GO
diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql
index 23c0875..5469d59 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql
+++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/PrepareTablesForTesting.sql
@@ -1,20 +1,33 @@
-Print '
-****************************************************************
- Prepare the data in the tables for the tests.
-
- This script will be run every time the system tests
- needs to reset the data.
-****************************************************************
-';
+set nocount on
+--USE [master]
+--ALTER DATABASE [AdventureWorks] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
+--GO
+--USE [master]];
+--RESTORE DATABASE [AdventureWorks] FROM DISK = N'/var/opt/mssql/backup/adventureworks.bak' WITH FILE = 1,
+-- MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME".mdf',
+-- MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME"_log.ldf',
+-- NOUNLOAD,
+-- STATS = 5
+-- ];
+-- go
+--Use [AdventureWorks]
-use [$TARGET_DB_NAME]
+--================================================================================================================
+--================================================================================================================
+--================================================================================================================
+
+use [$TARGET_DB_NAME];
+
+GO
PRINT '
*****************************************
Delete all records in database
*****************************************'
-Truncate table BuildVersion;
-Truncate Table ErrorLog;
+GO
+DISABLE TRIGGER ALL ON HumanResources.Employee;
+DISABLE TRIGGER ALL ON Purchasing.Vendor;
+GO
-- Disable all the constraint in database
@@ -32,26 +45,123 @@ SELECT @sql += N'ALTER TABLE ' + obj + N' NOCHECK CONSTRAINT ALL;
EXEC sys.sp_executesql @sql;
GO
+
+--use [$TARGET_DB_NAME];
+GO
-- -----
+DELETE FROM [Sales].[SalesOrderHeader];
+DELETE FROM [Sales].[Customer];
+DELETE FROM [Production].[ProductModelProductDescriptionCulture];
+DELETE FROM [Purchasing].[ProductVendor];
+DELETE FROM [HumanResources].[EmployeeDepartmentHistory];
+DELETE FROM [Person].[BusinessEntityAddress];
+DELETE FROM [Person].[BusinessEntityContact];
+ GO
+DELETE FROM [Person].[PersonPhone];
+ GO
+DELETE FROM [Production].[ProductDocument];
+DELETE FROM [Production].[ProductInventory];
+DELETE FROM [Production].[ProductModelIllustration];
+DELETE FROM [Sales].[CountryRegionCurrency];
+DELETE FROM [Purchasing].[PurchaseOrderDetail];
+DELETE FROM [Production].[WorkOrderRouting];
+DELETE FROM [Production].[ProductProductPhoto];
+DELETE FROM [Production].[WorkOrder];
+DELETE FROM [Sales].[PersonCreditCard];
+DELETE FROM [Sales].[SalesOrderDetail];
+DELETE FROM [Sales].[SalesOrderHeaderSalesReason];
+ GO
+DELETE FROM [Sales].[SalesTerritoryHistory];
+GO
+DELETE FROM [Sales].[SpecialOfferProduct];
+GO
+DELETE FROM [Sales].[Store];
+DELETE FROM [Sales].[ShoppingCartItem];
+ GO
+DELETE FROM [Sales].[SalesTaxRate];
+DELETE FROM [Sales].[SalesPersonQuotaHistory];
+ GO
+DELETE FROM [Sales].[SalesPerson];
+DELETE FROM [Sales].[CurrencyRate];
+DELETE FROM [Production].[ProductReview];
+ GO
+DELETE FROM [Production].[TransactionHistory];
+ GO
+DELETE FROM [Production].[ProductCostHistory];
+ GO
+DELETE FROM [Production].[ProductListPriceHistory];
+ GO
+DELETE FROM [Production].[Document];
+ GO
+DELETE FROM [Person].[Address];
+DELETE FROM [Person].[StateProvince];
+DELETE FROM [Sales].[SalesTerritory];
+ GO
+DELETE FROM [Person].[EmailAddress];
+ GO
+DELETE FROM [Person].[Password];
+ GO
+DELETE FROM [HumanResources].[EmployeePayHistory];
+ GO
+DELETE FROM [HumanResources].[JobCandidate];
+DELETE FROM [HumanResources].[Shift];
+DELETE FROM [dbo].[AWBuildVersion];
+DELETE FROM [dbo].[DatabaseLog];
+DELETE FROM [dbo].[ErrorLog];
+DELETE FROM [HumanResources].[Department];
+ GO
+DELETE FROM [Person].[AddressType];
+DELETE FROM [Person].[ContactType];
+DELETE FROM [Person].[CountryRegion];
+DELETE FROM [Production].[Illustration];
+ GO
+DELETE FROM [Production].[Location];
+ GO
+DELETE FROM [Production].[Culture];
+ GO
+DELETE FROM [Person].[PhoneNumberType];
+ GO
+DELETE FROM [Production].[ProductDescription];
+ GO
+DELETE FROM [Production].[TransactionHistoryArchive];
+ GO
+DELETE FROM [Production].[ProductPhoto];
+ GO
+DELETE FROM [Production].[ScrapReason];
+DELETE FROM [Sales].[CreditCard];
+ GO
+DELETE FROM [Sales].[Currency];
+DELETE FROM [Sales].[SalesReason];
+ GO
+DELETE FROM [Sales].[SpecialOffer];
+ GO
-Declare @TableName nvarchar(256) ;
-SET @TableName = '';
-
-WHILE @TableName IS NOT NULL
-BEGIN
- SET @TableName =
- (
- SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
- FROM INFORMATION_SCHEMA.TABLES
- WHERE TABLE_TYPE = 'BASE TABLE'
- AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
- )
-print 'Deleting from table '+@TableName ;
-
-DECLARE @sql nvarchar(max) = N'Delete from ' + @tablename;
-EXEC sys.sp_executesql @sql;
-ENd
+DELETE FROM [Production].[BillOfMaterials];
+ GO
+DELETE FROM [Purchasing].[PurchaseOrderHeader];
+ GO
+DELETE FROM [HumanResources].[Employee];
+GO
+DELETE FROM [Person].[Person];
+GO
+DELETE FROM [Purchasing].[Vendor];
GO
+DELETE FROM [Person].[BusinessEntity];
+GO
+DELETE FROM [Purchasing].[ShipMethod];
+DELETE FROM [Production].[Product];
+DELETE FROM [Production].[ProductSubcategory];
+DELETE FROM [Production].[ProductCategory];
+DELETE FROM [Production].[ProductModel];
+DELETE FROM [Production].[UnitMeasure];
+GO
+DELETE FROM [Person].[CountryRegion];
+delete from [Person].[StateProvince] ;
+DELETE FROM [Sales].[SalesTerritory]
+GO
+
+
+
-------
@@ -68,295 +178,194 @@ SELECT @sql += N'ALTER TABLE ' + obj + N' WITH CHECK CHECK CONSTRAINT ALL;
' FROM x;
EXEC sys.sp_executesql @sql;
+
GO
+Enable TRIGGER ALL ON Purchasing.Vendor;
+Enable TRIGGER ALL ON HumanResources.Employee;
+
+GO
+--================================================================================================================
+--================================================================================================================
+--================================================================================================================
+
PRINT '---------------------------
Insert records into database.
---------------------------'
-SET IDENTITY_INSERT [SalesLT].[Address] ON
-GO
-INSERT [SalesLT].[Address] ([AddressID], [AddressLine1], [AddressLine2], [City], [StateProvince], [CountryRegion], [PostalCode], [rowguid], [ModifiedDate])
- VALUES (640, N'251 The Metro Center', NULL, N'Wokingham', N'England', N'United Kingdom', N'RG41 1QW', N'0e4ac5bb-be0d-4a96-a58e-064daec08e1a', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (652, N'Wymbush', NULL, N'Milton Keynes', N'England', N'United Kingdom', N'MK8 8DF', N'54e20963-b0e9-41cf-ab7e-d50459a3325c', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
- , (669, N'Internet House, 3399 Science Park', NULL, N'Cambridge', N'England', N'United Kingdom', N'CB4 4BZ', N'56baec2a-5cc5-4a90-bef9-ee57e82f2e69', CAST(N'2006-12-01T00:00:00.000' AS DateTime))
- , (1034, N'Oxnard Outlet', NULL, N'Oxnard', N'California', N'United States', N'93030', N'300d2a6e-67b4-417b-83a9-2026818a21c6', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (1038, N'123 Camelia Avenue', NULL, N'Oxnard', N'California', N'United States', N'93030', N'a86c8140-ad7d-4caa-9b40-4006bd9998e2', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (1090, N'25130 South State Street', NULL, N'Sandy', N'Utah', N'United States', N'84070', N'cf3ae92a-3e66-4af0-b683-731826e89cd1', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (1092, N'99700 Bell Road', NULL, N'Auburn', N'California', N'United States', N'95603', N'79cdd89c-3c91-48db-8277-46d04aad7251', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
- , (1111, N'Orphan Record', NULL, N'Use In Delete Tests', N'California', N'United States', N'95603', N'00000000-1111-2222-0000-000000000001', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[Address] OFF
-GO
-SET IDENTITY_INSERT [SalesLT].[Customer] ON
-GO
-INSERT [SalesLT].[Customer] ([CustomerID], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [CompanyName], [SalesPerson], [EmailAddress], [Phone], [PasswordHash], [PasswordSalt], [rowguid], [ModifiedDate])
- VALUES (29847, 0, N'Mr.', N'David', NULL, N'Hodgson', NULL, N'Good Toys', N'adventure-works\linda3', N'david16@adventure-works.com', N'969-555-0117', N'+gtwbVycsIIj2loVtrHNRN6IBLl20lQpRK8+JhzxyEo=', N'AwqZdYk=', N'fdd7d9cb-9a81-40fc-baf6-facde8da4923', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
- , (30019, 0, N'Mr.', N'Matthew', N'J.', N'Miller', NULL, N'Tachometers and Accessories', N'adventure-works\jae0', N'matthew5@adventure-works.com', N'1 (11) 500 555-0176', N'/hDOTbr9X/E4UE8H6wjOGHYZ6Gb8GDpmutPWgFTXQnc=', N'eiCRDs8=', N'226d328b-23d4-4215-b9c4-3da08f2e68db', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
- , (30027, 0, N'Mr.', N'Joseph', N'P.', N'Mitzner', N'Jr.', N'Engineered Bike Systems', N'adventure-works\shu0', N'joseph4@adventure-works.com', N'129-555-0164', N'7obarvC3BHLIE/oFo0n+bkB/EZ03Zc8Vu+F2jpK/CNM=', N'k6zgROU=', N'029c27b5-72e5-4024-a5fa-53bdb42b98bc', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30033, 0, N'Mr.', N'Vassar', N'J.', N'Stern', NULL, N'Transport Bikes', N'adventure-works\shu0', N'vassar0@adventure-works.com', N'328-555-0123', N'nPkLkDdemKmfK3VexvRWH5zYyNzwcfvny8DxWGnicSw=', N'hLswDiQ=', N'66193607-693c-4073-be28-78e3892141a2', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30072, 0, N'Ms.', N'Andrea', N'A.', N'Thomsen', NULL, N'West Side Mart', N'adventure-works\jae0', N'andrea1@adventure-works.com', N'1 (11) 500 555-0120', N'LDoJwsGCFLtxVdbdQBbN/to7zFF1skP+hWLrIrCxvAw=', N'NuexV8w=', N'9bbbddc1-8e1a-4edf-aa2f-a8abea78c940', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30089, 0, N'Mr.', N'Michael John', N'R.', N'Troyer', NULL, N'Thrifty Parts and Sales', N'adventure-works\linda3', N'michaeljohn0@adventure-works.com', N'308-555-0175', N'Gdklarx2tW1EtZEyrAUEIhhguzrFKVS4Bh3BdAsGngk=', N'HUE+JKI=', N'8d6af1e8-5082-4e5c-9f15-dfd04e64fd95', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30102, 0, N'Mr.', N'Roger', NULL, N'Van Houten', NULL, N'Sports Store', N'adventure-works\jae0', N'roger2@adventure-works.com', N'1 (11) 500 555-0110', N'C0yLsx6zITh7lXoIPgG1bl1t5II3nx4GYi/RaS1yB84=', N'WnTAc/0=', N'0ee7e95d-f12d-4d0d-8c6e-c64a0dda719a', CAST(N'2006-12-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[Customer] OFF
-GO
-INSERT [SalesLT].[CustomerAddress] ([CustomerID], [AddressID], [AddressType], [rowguid], [ModifiedDate])
- VALUES (29847, 1092, N'Main Office', N'54e22612-0521-4ea6-b7b0-29d081e054c4', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
- , (30019, 652, N'Main Office', N'4d79eb56-5f62-4c2f-90f2-f2f11d7e4f63', CAST(N'2006-09-01T00:00:00.000' AS DateTime))
- , (30027, 1038, N'Main Office', N'5dc4ddd8-be9a-4bd2-9f35-9f81743296e8', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30033, 1090, N'Main Office', N'c3b9cc49-7b83-4888-8958-1a3b7558e614', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30072, 640, N'Main Office', N'c6078b9a-2f95-4029-be72-511345be2a9a', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30089, 1034, N'Main Office', N'2f99485b-952a-44d4-a5af-5a94faca240e', CAST(N'2007-09-01T00:00:00.000' AS DateTime))
- , (30102, 669, N'Main Office', N'd996364a-0b31-4b67-adcc-1d0454b5b26d', CAST(N'2006-12-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] ON
-GO
-INSERT [SalesLT].[SalesOrderHeader] ([SalesOrderID], [RevisionNumber], [OrderDate], [DueDate], [ShipDate], [Status], [OnlineOrderFlag], [PurchaseOrderNumber], [AccountNumber], [CustomerID], [ShipToAddressID], [BillToAddressID], [ShipMethod], [CreditCardApprovalCode], [SubTotal], [TaxAmt], [Freight], [Comment], [rowguid], [ModifiedDate])
- VALUES (71774, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO348186287', N'10-4020-000609', 29847, 1092, 1092, N'CARGO TRANSPORT 5', NULL, 880.3484, 70.4279, 22.0087, NULL, N'89e42cdc-8506-48a2-b89b-eb3e64e3554e', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
- , (71776, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO19952192051', N'10-4020-000106', 30072, 640, 640, N'CARGO TRANSPORT 5', NULL, 78.8100, 6.3048, 1.9703, NULL, N'8a3448c5-e677-4158-a29b-dd33069be0b0', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
- , (71815, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO13021155785', N'10-4020-000276', 30089, 1034, 1034, N'CARGO TRANSPORT 5', NULL, 1141.5782, 91.3263, 28.5395, NULL, N'2aa5f39b-1096-4a4b-b17b-f10504a397ce', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
- , (71816, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO12992180445', N'10-4020-000295', 30027, 1038, 1038, N'CARGO TRANSPORT 5', NULL, 3398.1659, 271.8533, 84.9541, NULL, N'e3c189e7-98de-4c40-b6c2-0d1d13f9bb33', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
- , (71831, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO10295111084', N'10-4020-000322', 30019, 652, 652, N'CARGO TRANSPORT 5', NULL, 2016.3408, 161.3073, 50.4085, NULL, N'625d76fc-c26f-4149-bf24-939fb2bccd77', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
- , (71846, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO2378131604', N'10-4020-000635', 30102, 669, 669, N'CARGO TRANSPORT 5', NULL, 2453.7645, 196.3012, 61.3441, NULL, N'a86d90ad-d1c0-440d-9a57-5b763bf18234', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
- , (71856, 2, CAST(N'2008-06-01T00:00:00.000' AS DateTime), CAST(N'2008-06-13T00:00:00.000' AS DateTime), CAST(N'2008-06-08T00:00:00.000' AS DateTime), 5, 0, N'PO16530177647', N'10-4020-000601', 30033, 1090, 1090, N'CARGO TRANSPORT 5', NULL, 602.1946, 48.1756, 15.0549, NULL, N'05fee073-0640-4a3c-914d-fe4ae6da3d43', CAST(N'2008-06-08T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[SalesOrderHeader] OFF
-GO
-SET IDENTITY_INSERT [SalesLT].[ProductCategory] ON
-GO
-INSERT [SalesLT].[ProductCategory] ([ProductCategoryID], [ParentProductCategoryID], [Name], [rowguid], [ModifiedDate])
- VALUES (1, NULL, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (2, NULL, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (3, NULL, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (4, NULL, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (5, 1, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (6, 1, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (7, 1, N'Touring Bikes', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (8, 2, N'Handlebars', N'3ef2c725-7135-4c85-9ae6-ae9a3bdd9283', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (9, 2, N'Bottom Brackets', N'a9e54089-8a1e-4cf5-8646-e3801f685934', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (10, 2, N'Brakes', N'd43ba4a3-ef0d-426b-90eb-4be4547dd30c', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (11, 2, N'Chains', N'e93a7231-f16c-4b0f-8c41-c73fdec62da0', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (12, 2, N'Cranksets', N'4f644521-422b-4f19-974a-e3df6102567e', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (13, 2, N'Derailleurs', N'1830d70c-aa2a-40c0-a271-5ba86f38f8bf', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (14, 2, N'Forks', N'b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (15, 2, N'Headsets', N'7c782bbe-5a16-495a-aa50-10afe5a84af2', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (16, 2, N'Mountain Frames', N'61b21b65-e16a-4be7-9300-4d8e9db861be', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (17, 2, N'Pedals', N'6d24ac07-7a84-4849-864a-865a14125bc9', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (18, 2, N'Road Frames', N'5515f857-075b-4f9a-87b7-43b4997077b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (19, 2, N'Saddles', N'049fffa3-9d30-46df-82f7-f20730ec02b3', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (20, 2, N'Touring Frames', N'd2e3f1a8-56c4-4f36-b29d-5659fc0d2789', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (21, 2, N'Wheels', N'43521287-4b0b-438e-b80e-d82d9ad7c9f0', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (22, 3, N'Bib-Shorts', N'67b58d2b-5798-4a90-8c6c-5ddacf057171', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (23, 3, N'Caps', N'430dd6a8-a755-4b23-bb05-52520107da5f', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (24, 3, N'Gloves', N'92d5657b-0032-4e49-bad5-41a441a70942', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (25, 3, N'Jerseys', N'09e91437-ba4f-4b1a-8215-74184fd95db8', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (26, 3, N'Shorts', N'1a5ba5b3-03c3-457c-b11e-4fa85ede87da', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (27, 3, N'Socks', N'701019c3-09fe-4949-8386-c6ce686474e5', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (28, 3, N'Tights', N'5deb3e55-9897-4416-b18a-515e970bc2d1', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (29, 3, N'Vests', N'9ad7fe93-5ba0-4736-b578-ff80a2071297', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (30, 4, N'Bike Racks', N'4624b5ce-66d6-496b-9201-c053df3556cc', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (31, 4, N'Bike Stands', N'43b445c8-b820-424e-a1d5-90d81da0b46f', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (32, 4, N'Bottles and Cages', N'9b7dff41-9fa3-4776-8def-2c9a48c8b779', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (33, 4, N'Cleaners', N'9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (34, 4, N'Fenders', N'1697f8a2-0a08-4883-b7dd-d19117b4e9a7', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (35, 4, N'Helmets', N'f5e07a33-c9e0-439c-b5f3-9f25fb65becc', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (36, 4, N'Hydration Packs', N'646a8906-fc87-4267-a443-9c6d791e6693', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (37, 4, N'Lights', N'954178ba-624f-42db-95f6-ca035f36d130', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (38, 4, N'Locks', N'19646983-3fa0-4773-9a0c-f34c49df9bc8', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (39, 4, N'Panniers', N'3002a5d5-fec3-464b-bef3-e0f81d35f431', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (40, 4, N'Pumps', N'fe4d46f2-c87c-48c5-a4a1-3f55712d80b1', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (41, 4, N'Tires and Tubes', N'3c17c9ae-e906-48b4-bdd3-60e28d47dcdf', CAST(N'2002-06-01T00:00:00.000' AS DateTime))
- , (42, Null, N'Record to Delete', N'3c17c9ae-e906-48b4-bdd3-000000000001', CAST(N'2005-06-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[ProductCategory] OFF
-GO
-SET IDENTITY_INSERT [SalesLT].[ProductModel] ON
-GO
-INSERT [SalesLT].[ProductModel] ([ProductModelID], [Name], [CatalogDescription], [rowguid], [ModifiedDate])
- VALUES (2, N'Cycling Cap', NULL, N'474fb654-3c96-4cb9-82df-2152eeffbdb0', CAST(N'2005-06-01T00:00:00.000' AS DateTime))
- , (5, N'HL Mountain Frame', NULL, N'fdd5407b-c2db-49d1-a86b-c13a2e3582a2', CAST(N'2005-06-01T00:00:00.000' AS DateTime))
- , (9, N'LL Road Frame', NULL, N'ddc67a2f-024a-4446-9b54-3c679baba708', CAST(N'2005-06-01T00:00:00.000' AS DateTime))
- , (11, N'Long-Sleeve Logo Jersey', NULL, N'20efe3f1-a2f8-4dde-b74b-18265f61f863', CAST(N'2005-06-01T00:00:00.000' AS DateTime))
- , (17, N'ML Road Frame-W', NULL, N'ca18ecfd-2023-4fa7-a556-0321153bca34', CAST(N'2006-06-01T00:00:00.000' AS DateTime))
- , (20, N'Mountain-200', NULL, N'3b78edff-2aa9-4ac1-8c3d-94090b5f53a9', CAST(N'2006-06-01T00:00:00.000' AS DateTime))
- , (22, N'Mountain-400-W', NULL, N'6d2fcce4-ffce-4662-a3f8-5d18f0eedcd8', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (23, N'Mountain-500', N'Suitable for any type of riding, on or off-road.
- Fits any budget. Smooth-shifting with a comfortable ride.
- AdventureWorks2002HTTP://www.Adventure-works.comProduct highlights include:
- 1 yearparts and labor3 yearsmaintenance contact available through dealerStable, durable wheels suitable for novice riders.Made from synthetic leather and features gel padding for increased comfort.Expanded platform so you can ride in any shoes; great for all-around riding. Super rigid spindle. Our best value frame utilizing the same, ground-breaking technology as the ML aluminum frame.frontsmall1 These are the product specifications.
- Varies Centimeters.
- Aluminum AlloyAvailable in all colors.Mountain bikeNovice to Intermediate riders', N'866dbad3-5999-4329-beac-d826d959d9a1', CAST(N'2006-11-20T09:56:38.273' AS DateTime))
- , (24, N'Racing Socks', NULL, N'bd8ba6f8-7e16-4fa3-b3b3-2036dd4a2ae0', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (31, N'Road-750', NULL, N'2bf795f4-2666-4691-af14-d490c7334a8a', CAST(N'2006-11-20T09:56:38.273' AS DateTime))
- , (32, N'Short-Sleeve Classic Jersey', NULL, N'6beccf2d-eacd-496b-995b-d692567565cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (34, N'Touring-1000', N'Travel in style and comfort. Designed for maximum comfort and safety.
- Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.
- AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights.
- 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.Excellent aerodynamic rims guarantee a smooth ride.Cut-out shell for a more comfortable ride.A stable pedal for all-day riding.aluminum alloy frame
- and features a lightweight down-tube milled to the perfect diameter for optimal strength.frontsmall87 These are the product specifications.
-
- Aluminum alloy Available in most colors.Touring bikeNovice to Advanced riders', N'52e7f2c1-dbff-4518-927d-c7d46f9ed32e', CAST(N'2006-11-20T09:56:38.273' AS DateTime))
- , (35, N'Touring-2000', N'The plush custom saddle keeps you riding all day, and there''s plenty of space
- to add panniers and bike bags to the newly-redesigned carrier.
- This bike has great stability when fully-loaded.
- AdventureWorks2002HTTP://www.Adventure-works.comThese are the product highlights.
- 1 yearparts and labor5 yearsmaintenance contact available through dealerA light yet stiff aluminum bar for long distance riding.New design relieves pressure for long rides.Top-of-the-line clipless pedals with adjustable tension. High-strength crank arm. The aluminum frame is custom-shaped for both good looks and strength;
- it will withstand the most rigorous challenges of daily riding.frontsmall87 These are the product specifications.
- AluminumAvailable in all colors except metallic.Touring bikeAluminium alloyIntermediate to Advanced riders', N'aa10d9e6-e33f-4da8-ace1-992fcd6bb171', CAST(N'2006-11-20T09:56:38.273' AS DateTime))
- , (36, N'Touring-3000', NULL, N'f5a6ec78-4451-45db-955f-db197de8b059', CAST(N'2006-11-20T09:56:38.273' AS DateTime))
- , (37, N'Women''s Mountain Shorts', NULL, N'a08dd61a-6155-4051-9a11-223232ea51cd', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (63, N'ML Mountain Pedal', NULL, N'be9cdc56-f4ab-40f1-b338-2e08e0627abd', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (102, N'Front Brakes', NULL, N'1099a23a-c9ed-41b1-8cc1-e2c1c54a10c8', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (103, N'Front Derailleur', NULL, N'10e0c8fd-ca13-437b-8e22-51853ae160a7', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (128, N'Rear Brakes', NULL, N'71d47afd-da3a-43f1-83ad-69c71f96ef33', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[ProductModel] OFF
-GO
-SET IDENTITY_INSERT [SalesLT].[Product] ON
-GO
-INSERT [SalesLT].[Product] ([ProductID], [Name], [ProductNumber], [Color], [StandardCost], [ListPrice], [Size], [Weight], [ProductCategoryID], [ProductModelID], [SellStartDate], [SellEndDate], [DiscontinuedDate], [ThumbNailPhoto], [ThumbnailPhotoFileName], [rowguid], [ModifiedDate])
- VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 6.9223, 8.9900, NULL, NULL, 23, 2, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9ede243-a6f4-4629-b1d4-ffe1aedc6de7', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 38.4923, 49.9900, N'L', NULL, 25, 11, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000142567FCFCFC9F9F9F2C4B67CECECEE4E4E43B658AAAAAAA2C3458CACACAF0F0F04757A510182EC6C6C6E6E6E6EAEAEAA4A4A4EEEEEEE2E2E2696665AFAFAF102136225A8B8895AAD2D0E6B1B1B18DAFD3333335FAFAFA2E73B2254B72637098B2BCC876757AC2C2C218479DF6F6F65075AC3216701750A1F8F8F87E8E9DF4F4F4B8B8B71D3B88262526DEDEDEA7A8B4DADADA8D8D8D345CA82334750C365B1A53882934672C435ECFD0D01664AAF2F2F2165A981948854581B787A7C5534B46919191113F6B5357751B3394DDDDDDB4B4B4D7D7D79A9A9932343D3E3E3E16181D192E595754523134470F1A4824547FD4D4D46986A67DA5CC87827EC7C6D91761A9574F4A4C5C83959594CCD1D8193F99A5A19CACA9A64E48442C589A05060850637CD0D0CE262E639A9896928D89182942928E9F1E5199326A9C282D38E1E0DF453C38A1A1A1675B77A8A8A79594923579B549423D395A88CDCDCBE5E4E2757370B6B6B6D3D3D22D3A4A9796958C8986BAB6B31F3C58BABABABFBDBAACB1BDC0BEBBE7E6E4D8D8D8737DBAB1ADA939437ADFDFDF3A4C96272F488B8784D5D5D2605954CAC9C62C3F54D0CECBE9E8E73D276ABCBAB8B6B4B0B3B1AFACACAB0C2A54050B16BCBDBDD4D2D0C8C7C7EFEFEF5E95C5195E9F1830810C121DDBD9D7EEEEECEBEBEBE1E1E1DAD9D968625E4F3A7699BCDA1B49927E78730F0F0FBFBFBFFEFEFEBEBEBEE8E8E8EDEDED1667ACECECEC1659A56B98C6CBD9EA184C9FE9E9E9535EA96169AFFDFDFD1D3F90223E77296EB0B9B9B9EEEDECF5F4F31953A0CCCBCAEDEDECE4E3E139312EF5F5F5C7CCCFA4A2A0E9E9E8154891300E7B6081BC6F8AC12A639F8F91C5B6B5B40E2F4CC3C2C0D1D1D17B7FA6FBFBFB706F7C6F6C69686D7C355978DFDEDCADABA8EAEAE9EAE9E8E9EAEA9EB2C4E7E7E73C516932496A7E85BFC0C0BFA8A5A21D1E20CACDE4A29F9BFBFCFCD6D6D52B2B2CF7F8F82260A7F7F7F7505152F8F8F7414151F1F1F19994903E74A5DCDBDB3120542D2E5B3F4A8B313C7A3D2374301C621660A835383C2F2F2F739CC6000000FFFFFF21F90400000000002C00000000500032000008FF0055FD1B48B0A0C1830657295CB80A97435C01224E9BC6A1220A76EC481053A1029E024DAE603D68E5A080044344601881128D4082062258F12A42E10004010211EADCF98FE1C287102552B4885123478F204592348952254B973065D2B48993A7D5843E1B060D307162450E17336EECF831E4C8922753AE6CF932E6CC9A37735EBDCAD06180735FC1EA454154ECD1B24AD1365D0BD5EDD4B873E76AE58AA2C13C05735E880BD64B810E62EAD485354A36E959A66A9FB6950AB76A629E0ACF0533832F5F32132692BDA667660EB640BD2E93D03816A9D9A5699DB28DFA96AADCD358A715BB8066463E7C6D4A9582E47A800D691F227DA2134A818AB19D7F0BFF0E3DDC70E9E3C87BAE0AF0278A1419703C34811DA28D897C339E2068166BC7150A8AA8F148043AA8A0836F8181265C61A41997DE400AB1278716BB68B080014F3482443D36E453CF06BA80918410B1E8A3C529293813E03611C083E067C111365A7188A5D7D01F68E83302853EDC70032739F081C83508D8B00127B280B0CF8F5AD022851729F8818E04A16862A5780ACA48DC61A69DB68A02D20C52858E5A30D30E123BBC92430DFEA492843FBA5421CB2C72ECE3010B4ECAD04319938461482DAE4480658CA26D791E72ABB872CF0262EA3803121BF090839AB1A4E24F125FF020E72C1D7860C10D79F6E0C9042BCCF1A72B830E56A8790E7A198313B688FFC9090F376C50C80893E6104B0597A672C2A61D9CE0C10D7844B18E3C4EB40041247748F0002C09125A5E83352A16C03E0CC45A830DBF0C408D2DB852BAC4A54AFC3A67B087E0D1842EE080234619751CD080200E84120A8CAA4E4B639774CD438E27F608B101B7DF50016EAEB1E8726905E6727AC20221AC7B8327360C9084002BE0204A2DF702972F83FBA2B753433120D20200330C7CC607181C4CE9295F24C130B00F6B20B1123678C0400C0788308A030FE04B1EC85C8AAC53434D2080040329DB30C32D180C52021C9B6C120B2DA9F033F3B93537A24B23E4E48C47176CF0128D04B5D4E2F1D033169DD82AA138A1B413626C80C0105097B38C29A6E8FF4A0BAF4B341CEC021AD4704319FCE4DC481A475090C93C0EA83DDE826D1F3A57000200A0340B0C20D109DE1884A30C1CBB583D4219FE044E33E1AF5850C1C01EE0F1450C10B0824E01ADAC4DB9A1AD5AD5D0049A23914B059F83EEB2DFE3AACE35EBFA30007B1AFEB4334606A67AE3CDE45AB25A2D6A1128F10522C23FC1C010C687EBF70CA90B5EF32B3CF0013BAFA9E8610C343014707D96AB52CBEF4EB8B8E18F3F4A081F3900503E84D14261CA7318EB2A5003D859CA1F4C20C324A2210A07602F7F21A30B2EBAF03F7FA421174FD880253A01B5E35D8D05FE6081FA16688181DDA0832D40853932418402D8505A44B31CF71ED8261022211D0C28A1F9FFAEA60B066861851A08C2335A68032574700DA420831F046143FCE9CB6DBE53471D3AE80F008470034A1042CB867840001C71751750C20098F885FFA5220E8B98C21EA674C38F55AE772363071DDEF4BF2F7C118C0623E3123A7146AE1DA205FB58E30678F5BF61AC611189888411245047B6F16E7B47434120FCD0820E2A6103A06C84104C488B250CA1900E63403A90A0C83602700D7120453CA0318F2AE2F08E9844C82AA6010A4C9081872D00E5009E718F2122E373A8EC00323EB9813592A38F6B58831550918D30A8C18256CC211E8F860B5F0803105BECA3302DE0892106410BA7145C05F8214C0FB8921F71E8C204E20188FA61F39697DCDFD1A6A1FF804FEC61111D2447332D90864A18109DA8E483FB846989FF91A30B5D88A3243081BBFBE1537BFAD4E52ADC110A4C64230E1DE4C71A91A08434F90DA1E6BA4025BE882D375AE107D3DC42265CE00DC965139719D5252ED8B10D476CA193001C29022A40295AA0B40A2520070841998E3EBED40AD51803207E1634DD654F7F463B5A0088110846A0A2837CB000121080081A9C349D3B4845F840E9CA38C094147A9868011ED0B10B5E5187D6F2661E2CD1464B3C61AC1E60E0D5505A09F02DF5814EE8C20F16818A7100430DDC80455D6F9ACFAC8E6C1A3A80C61700F0BF32ECA31E03680418D661D4537AA10C4A03E133BF70CE2E5861026488C428BC81AA68FFD9B1B2365A050AB4E18F2138E17FE94000185EE083C19EB2047FB881F082E08F2FD420075A780763CDC10809C04250B6B524462D3BB20028201D0464803F5A10836EC0E1AC47ECC125AC910BBE46414D5A40C204A6C0054738C0159EB12A06B188285CA8601F04B4C504FE508283A6B30AFDC80204F6610F0DA8A913A9A80319081186FBE6D7AEDACCE55C7041820938016F545800198F3AA71E9C817539A8C03EA6F0863E593855DAC5EA83FEB1D3107C5888064EE6FA76E08F6AE8E108CEB8C38BB3BBBBEDCE78151CC880250A5854122BD0C134D8801E6220804B18A11511B830658DFC20241761C9386EF28197E7604B4C20066F708363429165181759FFC65DE6676FC38C5EC1F1E01E5108422A6210832350AF00F8D5F245E16CA300E820157203E30D0CC0681E72D18D2D68413A48110320D44E10ADB092A06FCBE542136305A460423BAA010420BCE10D79C0C2A94BCD6A56F3B9D20228023044010B050046686FCEE08C775A8B68D8810DA9CE431EC63086231CA1D8C64EB6B205C0860C340006997E917EEFBA4D2F7140012EC8841D28E1063770211B942004252840EE7267E0DC1928821D2E91002AB648DA18C6297751130012C0C2107778492618010C60CCC11104C081C071108D68DCE1E07740070C448165781CE8D6D3CE704E35380D1268A21655B4DF238E718C56A4EDE320AFC5B35A54A0876F3AC6FB40A2802A56CEF296BBFCE52BBFC425FAB0829AF3A20F38CFB9CE6FCE8B9EFBBC0F3EE745CDED60076714A108192837252871806E4300026C1080B1C78085520704003B, N'awc_jersey_male_small.gif', N'34cf5ef5-c077-4ea0-914a-084814d5cbd5', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 204.6251, 337.2200, N'52', CAST(1088.62 AS Decimal(8, 2)), 18, 9, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'18fc5d72-a012-4dc7-bb35-0d01a84d0219', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 747.2002, 1364.5000, N'42', CAST(1233.76 AS Decimal(8, 2)), 16, 5, CAST(N'2005-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000C1C3BDF4F4F4BBCCC9ECEAEAC2D4D1ACC2BBB5B8B4DADADAB8BAB5ABB8B4AAB5B2E8E6E6D6D5D5A8B4ADEAEAEAC7C8C4B0B2ACA6B3B3E2E2E2DFDEDEE1E0E0ECECECB3BDBBF0F0F0CDD2CCD4D9D4F4F2F3C2D2CDEAE8E8E4E2E2E6F3F3DCDCDCCADBD9F2F2F2A4A5A3F0EEEEADADACABBDBBB4C9C3A5B1ADCECDCDE5E4E4D1D2CDDFDDDDD8D8D8EEECECCDCFCAD9E9E9F5F3F3E6E5E6BEBFBDEEEEEED9D6D6B4B6B0D8DAD6BCBDB9E0E1DEC8CAC4E7E4E4C6C5C5F2F0F1F7F4F49D9C9AB4C2BBE8E7E8E3E0E1DCDEDABDC0BAC2C1C1F9F2F1B9BDB9B9BAB8E4E3E4A5ADABFBFCFCE9E8E8D8D6D8ADAFAADCDBDCFAF8F8E4E5E2E0DEE0A9AAA9EDECECCBD8D5DAD9DAAAADA6DEDCDEBFC1BCA6B8B9F8F7F7DADCD8D4D2D1C9C9C9E8E8E7C4C4C1BAC9C7ECEAECB5B6B4D3D5D2B0C2C2DDDCDDE3D9D9B1B2B0B4C6C5AEC0C0CCCACBF2EEEEB5C5C2B2B6B3F1EFEFCACDC8E2E0E2E6DBDBBFC2C1DADFDDBED0CEBFC5C2D4D3D4C4C9C8FCFBFBE6E4E6E3E4E2C1C6C0B3C4C3CAC7C8BDC7C6EEEDEDC0CECED6E1E1DCDADBFCFBFCC7CECDF6EFEFCAD5D4C5D8D5FCFCFBFAFAF9C2CDCBF4F0F1BBC2C1EBEAE8DEE1DDDBDADBB2C6C6A6ABA6E1E0E1DDDEDCDEDDDED9D8D9DFDDE0D1D2D1B5C3C3FDFDFDFCFCFCFBFBFBF8F8F8FBFAFAF7F7F7FAFAFAF9F9F9FEFDFDF9F8F8F7F6F6F6F6F6FDFCFCFBFAFBFBFBFAFDFCFDF8F7F8F8F8F7FEFDFEF0EDEDF2F1F1FEFEFDFDFEFEF7F7F8F7F7F6F7F6F7FDFDFEF4F4F3EAE9E9F9F8F9F2F2F1FAFAFBF0EFEDF3F3F3FCFCFDE1E2E0FDFDFCF6F6F5F8F9F9F0F0EFEBEBEBEDEEEDF8F8F9F6F5F5DAE2E2F8F9F8E4DDDDF8FEFEF1F1F1F9F9F8E2E7E6E3E3E3E0EBEBF2ECECBBC0BBEFEFEFB8C2BFE3E3E0E7E7E7F3F4F3F6F6F7C3C9C9F7F2F3C5C3C4F4F1F1FCFDFCBEC4BEC0C0BEEFF4F4FCFDFDF5F6F5FAFBFBAEAFAFD8CFD0CFDFE08D9796818080EAD9D9FDFEFDC0C6C5D5DDD9B9BEBCB9B8B7F0EBEBF0EBECF1ECEBCFCFCEE1DCDCEEEEEDC1C0C0E9EAE8E9EAEAFAF9F99AAEAEC3D0D0E4E7E7E6D4D4E7E7E4D7D6D7ACACACA7AFAEFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0E1C04C0E230AF4376A043B67850A15D9B8D19D068912FD0590C089A0A600333E090C0552203178F08E99311387A6B97CF98E8D6AE9D01FB447CC3C29D1B580128B7D12DC5C08B2A6A5BF4C995EA1223605080D1AF046F8E3199118033B559CD8B1430988844751283DD2C175A0A660CC525CD0D63622386894183080B353E0146C3BECF0A8FB8FD31F0DB308475459EA51258803BBA113D1473135608A25120BF12FCA95821E0C884001AAAEBF11BA3247D4F53106835403FDBD104162CC1C1C03B4F0DC144C95EA86FE866D95C580522781C808F03BD3840F0110E91C71F015D15FAB01907F2BDCF56A6032065582F5FFF060E1C69E315FDA444843874A0621FA606C15F82AD3FC8114D6A9C9AEDDA11609FB8873C71944F42304299E30A306020A9420000154D8204D2E9A1CB4C925EBC8804B7F2D6D32C23D62DC90041A381023101E533020438368D061C87B8DF8E65D1732BCC1214FC80820430D359C0006050114A4C10A0F18900019026C8041067AD0F24F2D3B2030C98D099DF4472D4BD4124C2B5A34630137085060C00980EC00CD41F54CF38E1109A461021B75BCF10611433869D0200154E0C534D3D0934C2AF7B5444C0A4E545105259438F1481582D07104022EFCE300041128820D2909B9120F0D7224A0801452C880850405E9C28C134E945186138254C142251354FFC05F439C48C08213417831801BD9B8D1C2001FF0C14D130708C48B1559288242850B1183C30367C8F0C3A802C922C90112ECBA48363068B0C6000B4451C501673AF4070B8F48D0C228B3E2510C1B323461071215DA60450977D8E110140660A14001582CA041151DB4008328AE1884070C53E8508504CC2A040403130C50DA41A1BCC08801282CC0C207A5A910491A754CD0900B063CA04203263481C21F6B1CA75026D7B430C1072A2534CD3E70B4225026110F540F083220008A26D35452C527BBB8100919EA00B19026431CA1C22C639C5000094824E4CF5303893205054E044DD01FFBA460E244B3FED38DA3EFACC4C13E94F803CA1749646184CF0901FF23C61038FC03448F26EC80E94460FF631F44F3D9520B05261BE4090B14C010DB41FE34E30702C2FCB35526793010C33F01DCD04F090FE886D02467EC910C2C955000C00926AC63F953607F6DDF56607352CB07B51844F60804053A100CE330F240419D4CC04090C28C890617660FF486182E98624919AD7CF280D6E178A2F8D79E3FB57BC41A4C534549DEB110034B9E2754C12146F062D005954421D03C9492C1C041BFA89A10DCC084016C851300684001C4608ADD792E139BD0843F24B8927F8C8D5403490B677ED6B67FE061198000C013E6433E7F20611F96FB072F9A10810450C020C1A80116BC108515ACED1FC4B881028F3008FB784E139F800A09FF05220A201CE0629EA8420CF863BCAD6821107E6001422EC082140C640BC84A40F008B28533BC6100951840416EC1A012C8236240F361FC06328509044320C1A8C21F1AC203106C638EC6FBC72628F00866F9430508C842345427901CD420034810440A0912831A24A0004EB81C09CD27900020E185FF90C0046E58BC89FC6315CC20800B06A1843C3EA9124112082E30300448D44166C6308211A0000709D4E3203880400236C08107164F8802F9041028710A4D5022059BF0E44134910A42B06105E43B881BAA30058278E201CFC8C21D04A20711ECE10F55008229FF31095D12008F0411E27D5851065D70C209E2C4DC403A11043658A00708D90A0CCAB0FF8082840000EAB04706FE01011FBCE32C03D0844251A189526482A1A8604113122080D1950F216E98C01F02F0882D7A2D177D480006C6B746828C220A5D2B4805109004134CA01CFC400112F2C08A4D74A2980A5DC52A34518F1660C10A11C0045BB2134D81F060020ED0C523C4A8904E5C420EDC48010F4C91102D48028305D1C33AD061011FC8E31D5308C34714D709188C000A5BC0C01E7E600111F8E00498100528D867100D2035004E606A3E03310E3970E109A5C8270E2591D282D8A20F67E08714D6B1834AA8810614A8C41830B00101BC890C64B040024470031790430E99F844F5FED10A4A04C3134E588242FC818F00D0E00FBF689624F2609055FF68000644E0473864100E6B58E01E87380401E800861F18A00D3CBA0100202005E9300082392B080FAE30824D1C33B082C5832450B189710A040651F0E84036F1A710748108F740C33D0C41883D6C030B0078800B6CC08B5AB88113BEC000375070267F7862B43C7082E5244101BA5E2E7E40435C424640890B18E41301D0C42606B083AF72A10F6AA0400574F1893C7E2318C138402DE69ACCA27AAE165750492DB857902196D4C4042905079C7031826CA215B0F0042862300D62C06200B5804D8BDD22812568022ACABC0F273A00874A1E209E435670490D32A8261BC41F172086C174A1054E68E20F0B78634232E180091032C9024986692742090A88AFFF93075E6D1BAB79105504400B1AD040005A200B524481240801DA0024E01B260EA414C178448D2BE0841604EAD10C190510CA30DA4ABAA11530084027B4D0090938C10D5F5368274C718A4ED8E214A255E681B3210166A4F30329C0A7AAA74C6BC50DA0620B1945A651E3094404A06230D044317D086318FF43141C38C09BE3978C4770E0387880B4B107F2871450027E0AE1C426F0D00BF2C5A0D1D896329C07620A0E4CC00B078941C53AE18D82302E21C958C0233819E86A182F134E48CA7DBE66CAFB8482151D9840073311050AB0E3960F69DB7D2E008447CCA0219EB840C20AA2852A8E0011F1CB63A07A0A041A2764131390403BE4336BE655E51115C36848262A800452E4310055AC450A79C7BBE2B5A2162950F64232C10C4A0CA005B1480C9ADC30002438C1C10E81E03849F1084A708015A218380C169082B428A3D606F94319D4358211DCF909A4A0851B82C1811850421206568C3752C08209C460095E17C52738718BA277806CD33887443651E628A480031C180010A69102494C4012C9E84F82892181B04C80021440820E26408932C03A165CD1C42DA69116449DDD019817376126780A44F4C2130E20DB011E71800F482018BA48041E2868908000003B, N'frame_silver_small.gif', N'8ae32663-8d6f-457d-8343-5b181fec43a7', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 1251.9813, 2294.9900, N'38', CAST(10591.33 AS Decimal(8, 2)), 5, 20, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700009A9CA3BEC2C79DA3ACF1F0F96566694D53647C8494E1DDE44D515C41454D444953B2B2BBF6F5FDEEF0F5F5F5F5EEEEEEC2C2C4EEEEF8D5D3D90B182A97999ED1D1D4E9E8F450545E3D43525D616AF0E7E0CBCBD3F5F5FADFDCEA83848A000204F0EEF8F0F0F0FEFEFEEDEDF6FCFCFCDBDAE3EAEAE91423343D404A6B717970737AA4A5ABABB0B6535662F2F2F45458638B8A92BBBDC0CBCBCD414653AAB3C1A9ABAEF7F7FBBCBBBC6C6D728987A4494B54F4F0EAFCFCFFFAFAFAC4C4C76A75825C6773E5E5E57A7C848D97A4EAE9EC43355C494D59E1E2E55B5B62EDEEF1012543F1F1FCE1E1E2E8E8EBB3BCC5F8F8F93C3C44EAE9F7EAE9F2D2D3E38C9197B0B2B6ABABB2010811DAD9DD444B59BFC7E3848B92DAD9DA393D48A2A3A6E7E6E9213346F6F8FBE1E0E9E5E4F02324284A4E62838790FBFCFEB0AFB1CBD4E3E6E5F6C2C6D2E9E7E85A5E67DEDDF261656FECEBF5D4DCE438373AF8F8FFD6D8DDE4E4F92B313AFAFAFE2229348478989599B37E7D8ADDDEDFF8F9FBEBEBEDB2AEC8323D4A676A70555C66BAB6C0E7E7F2CDCDDAC4CBD2F4F3FEDADCDD383E50B5B7BB554B55E1E0F2343641A3ADB9CFD2D7FEFEFD5B6882F9F8FCE5E3E5373A43424658F3F2F2ECEEEE9EA9B7C6C8CAE2E6ED9E9FA4FBFBF9AEAEBAF3F3F9F3F4F5F5F3FA131319EDEDFC2038535257696A6672E4E3F2352949A6ABAEE7E5EEE1E6EAE3E2E9FDFCFDFBFBFB3F5266BCB8D3777681FAF9FDB9BACCCECED1040E1CFDFEFEFDFDFD74787FF3F3F4484551A8A7A9E3E3E5636777FBFBFFF9FAFB8D8E99F9F9FAF9F9FE5F5D696F748B7B77818A9EB18B666DE3E1F3E8E8F6524A73A6A6BFA5A5AE6C6C7AFAF8FEA3B9D5353069DDDBDEABAAC86E7E933239483C3648393240F4F4F4CDCDE2C5C8DA352B5DBAC2DA75648CD7D6DA6D6B8A5A5662F8F8F77497B4575486F7F7F7EBE4E3FDFDFCEFE8E9ECECECD6D7D8E7E9E8D1D9EAE9E8F9D5D4E8AB9C9F868598D9D7E6BEC0C3E5E2EDEBEAF2ECECF5DFE0EC968993B0BFCCB6B6CEB9B8C6F8F9F9595F6FE5E0E2DDE2EEC9C8CF4E4A70ECECF8FFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C183026D7D1187B0A1C3871023460C4281800F8918336A84880B0001245E5A6D1C4912233008482825A852B2A54B844136B5402147D7CB9B372DA1C1014541061824700A1D29E2DF19693A025119CA74E3A3132784586A4A55A2B42BA36260DCB5C70C802AB3F81C0942E4C193AA198F9CF8406B0200891500102BB5A88D10185BA850D95301AD44331FAED0FAF0C1081F8C7E6EE04082040A945CD5DEFA7DF809CF870957087F08452123B16AA528405866A5C9E48702020BCEAC39818C886CBCA1C8745AE29D2E8169B1D61C18C754480D615012523B22831CA1AE84C2406B306FC2646E348C5646C7AEE20F6DBC4A76EA54BD7F3F7407FF7EFE2150887FB66A0D2C14EE593BEC10739C2A92038440209809EF860E81A09A6DD9F4A3CC59F021644E251314F14A2C029D21886E99ED47980A53FDB3C77C7A24516043040496471404F551C015247E600719CFE1E1031F9975334681B63C70041F4C3C10D43F6864464B1C067D928573B49891C173B4D86162030F89208E09410471093025915001052A08D2420B1764A0020037A0F801060825C19C66BA700105798138848E225BFC0004106FA4700B15019C87912DEFA460442E3AE432C30C28F0A9C35A819971907A4D00B29B4DBA78A91F01E618C4C4162D2070C105DE60D9C20B082000C4260F4484CE2D5D609A0B258D7481C2AA2A9DA0E3020E1DFF01C66ED289E34128E37D40061A0391B002025990428A113354A2C00C18A0A08337DE20F0467F0E55A0032517E88042069BBC43C70158CCB2097E6C918140000E21322B61A1406B0E0EFBB5610E304224424A0195B400C3025C4800CD066808A14325C2B4A0C0260D558042020A74810404D6F4E009037D1CE20024C5E86847170A5CD4D053242A37CB40E7E8C01B192F54424A25597801CF3F4B88800CCBB50CB08A190A5C3AF041E8E89000025DFCF24D080E3CC000C48784C0812B6C1100854A1760E190216B6546C66103F920076F7860204409FF7020CF127720C3CA00AD58C04330B35C60C40B46B054D02D94BC90C02687F0604910427BC2C31296A4FF31C107AEFCA348230A28A0420F0E05F0B7D4D70DD48322461236014B0CD8128528C144C143040C8C30020F3C4880E50B8220425026502090C01EE811C2C0037C78D240CC210C11580073CCA14B175960A0C8438AFC4D18019A6828903848E0C1DA152968184C1D7BDFE14F046A00134104FFCCA28320461037100E281881841F0BFD630103417C318008707C31641BBD58F00F03CCA080C11BF83CC4C2157874E2080D3408C00EFE0180469441014898C060F0E0887F608E01BD18401DFC11050EFCC3137300000674F69A7F98C95A2BF807097631950858800EF368C2141E81075A546009B1888208663103056080360FC10426C01189156CC1113728870AFFCA50860C24E0037800046132A0091010E1134B10853FFAF08F0180281E7243810704A20B28E8E0027E38843F5AF185508D600A0B78C71A60F0812C74AE0344608310158082A53C640D4E90862B0C300427D4831F3AE005023283002C1C60086B098501A6C08F47CC412011F00703D421020AA0204BE7F140E184F00013ACC21D7098C417B82006466CA0032DF800209650023658024A5E40C10C52F01012380113BF48410A78C10B2750C00E960985179E508E03E863036F18CC30EE718FD74C520D6A18402C3660844A55A0162A505D08C5618D1048C11DFC608119F6F00369E0AA0011780011BEA00F132CA00B3310042E1C0289003CE2082A50000C1651FF8F7C90680202D8471AD29186355861133038C10412F18B0530421403F0870D38D00B3F64400733508438088000055861095218C10096E08F0E386371E259819D06C20D14D4EC120F8983131E010B6AFC2213C5708E6656B3D32B9C801605F8C31418C083111C230A1190C71B40880F0210CB6D04F1030DAE30017AE0CA0EF710031C22308228F8831FAABA40A41CD20A3CF262149830842A2E800730B8E207F9E8A802B2000830FC54094AA0851E56C1833BF8B5173CB041207480012FFC23100813C0002C60014248C1146ED0C22826A0D00950A113EB1803083C61837F4080120A68C33C1B52145FA8E20D1360C72C5A41050C94C1000439C312B0418305FF4CA33991B00721FC1A064F7096086F30020A42E881C798811CBE98A82818E1861218421BB2B84700CEF18503A8C10D168003032880B114D842220698803134E00034B4211F29F84204E0600A3544C114FCE8C4304691880D704314EA1085273820895A48E002089881565640B80C34617AC720C40822C089125C430212C086861C300E0E20630087C5C00CB61091B3E4601AE3F8EE2C5CFB8677AC621E2300853FFEE1025900001366A0032482C18008B8211E5288450D1460840BA0C383E1D3C1EFA230000E80680EF370870B425081792CE11F0E980430E6508804080201EF88880974A18252BCE308FFB0461B7AF70B06B8A003EE3041034CD181770040FF1162604015E33149068082190840C12D0682582304C2027DE8C3CB6CE00F3E88A117C0D805160630827F24DA169A7CC11B46FB901EDCC00714A8011704F20B0C14201F4C38048693908A5594202E6BE08314EC038706442C0633B8000A7E57941B3442609D41862D80110517206200C158D201D8C08028046501A1CD022A30121412B4A228FF404416CA50003348A28A20E044071AE08727C4A309EAC3301C6C1002B5CDA00D0EF807B45590800B286019FF680532EEC08420ECB7077E78C0241E7007065480742D4801A54942014F936205CD38040982400871F8E11F2308011F8031024F541107332840177E879EEF3241013B4B80179E6C82B2706000E4FF3087251E600E56F8004BA4B840075B828B37B89614006045125C100107982366D668821F4460661C4C0301D3F05EC7BF9B094AB89412B790801F5A11823B0C0012360A01116080002C651427584040250A400A215420B0DDE4C1001C0E8C56F8C0081868C13432B05211D85D20EF484023844B095854E11C4D48452BB801010F6029030568DB502A7081B117E0051EF00113ACC1034F00831B83E04517A83D8D3704C121E768831DBA5E3804BC0009C1ED711B84E19399DF04384C084422CAC0B62C5CE0161E78C30B30300D23E4A3008910C24A1BE200005CA011B9C845A70A37031DE8200B82A08009AA828F5FCDA0C78248FC0C1020084E5522038A20C78841EC6E0B5BB402184131410D70A0BA1A3A1F0181580113D0D383567CF725E6EF013010B70B0064E04F7FA26118600429C0022EF00FB5600BD03610E4670B24A07F4FC00AFF800FE89009375003351003884045AC000C6D677F0B387E761782062102E6070CE2F0091C700649F008A8400566600654500574F00967100638D8073D40020AF80F0101003B, N'hotrodbike_black_small.gif', N'82cb8f9b-b8bb-4841-98d3-bcdb807c4dd8', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 360.9428, 594.8300, N'38', CAST(988.83 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'22976fa7-0ad0-40f9-b4f9-ba10279ea1a3', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 360.9428, 594.8300, N'44', CAST(1043.26 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'a0fad492-ac24-4fcf-8d2a-d21d06386ae1', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 360.9428, 594.8300, N'48', CAST(1061.40 AS Decimal(8, 2)), 18, 17, CAST(N'2006-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'8487bfe0-2138-471e-9c6d-fdb3a67e7d86', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 26.1763, 69.9900, N'S', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'22616fd2-b99f-4f7d-acf6-33dff66d42d2', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 26.1763, 69.9900, N'L', NULL, 26, 37, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003200F70000B3B3B3AD88568D340AA5A48E7E7B5046451D49451DCCCBC27575456664473C3A118C7242575535727142828151723F14595733FEFEFEFDFDFDBEBEBEB9B9B9A4A4A4AAAAAAAFAFAFCECECEDDDDDDD7D7D7CACACADFDFDFC6C6C6E4E4E4E6E6E6D1D1D1E8E8E8D4D4D4C2C2C2DADADAB4B4B49F9F9FE2E2E2EAEAEAFCFCFC8B8B59FBFBFBECECECFAFAFAF7F7F77F7E4DEDEDED7F3209EFEFEF98592B4D4B21F0F0F0B18C59F1F1F1CBCD66F3F3F3A57242F8F8F8F9F9F9CACABDA8A88FF5F5F5F6F6F6A5A64FF4F4F47F7E4F9798C27E7E7D66582C8B653598653734320BB88F5CB2B299F5F5F2BCBCBCBE7F4ECACAC0725829403E15D8D8CC984C20988B599494628584538B5920666548BE925F8B3F138584549865468C8B66666538B88C5A987F3891915FB48856B6B6B6943F14796537BBB6A5727140BBBBBBA44C20B0B0B0999884A58B594D4B1FA18B597F7259918B598C8B70E3E3DEE2E2D88888565F5E32EBEBE58C8B757F6547BDBDBDA8A88CCFCEBFC5C5B26F6E3D37350D8B8A74BCBBA66C6B3D6C6B3A69683B989784534B20756838B87F4EE2E2DCE0E0DD7264479E9E9EBCBBAA7F65387C6839B8B8B8A8A8A8D6D6D1958B59D8D8D3824F1B7F4F23B5B5B59E72439292928B8B5A8B78467B79617F7E615B5A347B48208F7C43463E16767454A1A1A1A3A3A39A9A9A6C5E2EBABABA6F5E31B7B7B7A5A493D8D7CB918E5C65644188893EA8A8998E6233C6C5BB856C2C915837853F189E491D853209985124BB8C59A6A58F96957D9B8B59918856ABABAB9E8553925F307B7B4979784DA1461A6F6E408F8F8FF2F2EF9C9C9C4D320ABDBDB35F320A593E1966652A91390EC1C3604D3E16C6C6B79898989595739F9E809875448B85537F653582815A959595EEEEEB75744346451A5C52264A48217271516C582DA57F4F8E8E5C957B5785754392917DE3E3E0635227956F3E927243957848C495629B7849908F7CD5D4C8826E3D7F4C1E6F6E4B69350CA88553AEAEAEAB8B59856537787846828163838269C2C1B889886D666534DFDED6BFBFBFCB9966983309989866FFFFFF21F90400000000002C00000000500032000008FF00F7FD1B48B0A0C1830623285C18418243092922AE58D1A2058F1D2E5C00F92124C78D1A3260B04011E28387131C3290D0200204860D1D464CA050E282850A260422DCC9F31FC3850F214AA46811A3468E1E418A246912A54A962E61CAA46913A7CE9E5809FE541834628A89152F66DCD8F163C891254FA65CD9F265CC99356FE6CC8AD58E3E9F5BBB0E0D6B7423A2A46799AA7DDA562ADCAA73E9F28C53001793BC0FBD822D7ACD193E089D002F4DEB946DD4B754E55E557C7090013FDBE2A862A8F7EB8A758C72B1529024899F36B0CC6E6EBA16AADBA971AD9246C847133F25E7CA686B138AD380E7D0EB718310A5766D0585CAC0FBC240375ADE843F03FF473C7AF84002E8F8A95FAFC4C68205A78CC89F2FDFD1021B59D6F323774FE9F7C19EFD769868E615A447384AE8A7E0820C2AE8CD26FE09D6996F8685265C81FFD8D1471561A820892E6CC8634383242A08CA248171D65B61A0059758814B58E1CF8C34CEA8021C54B8D14B89EAB5B79E39E2A4085E8015BA581E69045451E39235C2F1C00C977CA19E1847F832433B5A6851CE7A06080920852D9287A114F43069E68C31F4D34F2D87F033839A70F6B38C18EA35E2CA6E5FB2381E810546A3C29966A6A9A6136EC6092719B7F0C31D9E13EA39E085C3318100A081C249E89B86AA49069DDD44F25FA3E23DFA22697CFC42299382F67369A670DA92453AEA7CFFBA62A8168EAA588CA7D61846AAABB2AAA60E0130206B7802D67A64565DFC99AB8DBC16EA6B3F027CA24C2212CE5AAC910502B32C8D2AA4AA1EA6BEC6804310C7544B6C91629A27C8B6CCC2F9EDB3FD881BC438E61219269FA44961880A2A6C3184030EBCF0C202D47CB3A40AB3B8EB6CB8E3F6502F987B42AA18205AA879050E6018AA2CB75C280C2EABF23AACE2B9F74A4C971E705E9C719C1BDBD8B19AEF3E1BF2C38E1A6B5E172963ACF1C12FF71333C341883C24C4A21EDB9330705212442C3BD75885271EC33BF3C8F6466C2B564C94026F3F2DCFF840D432374C33ADD892C604145B77EDCFD7FD04A39E3447C42DF72B33D45D89D854136D336973A0FF0DAFDA6CA7C1A30D01CCC34C2B42E74976BA8A49E1F7B32F2C99C93B6A0AAE9E0D36B001CE1B6FB8C3AF0A740C814DE2A05ECB385D7B3CEE6BE4350E818C9AB4B841C7C645104144114BBE40BAB5E8E24BD712ECE820FCF0C4EBC03A8D0D24A3E6144CD67E7BEEBB936CB5D13B2D316289C7CFE8051ECB376F3BEE35BE00C8D8A6FB9E1534D79338CD927570DF0FF34B3A0F3E8D2FF8407EEF2663D5457E2552B1240D66E8DE92FC35842DE4CE7E79AB59D914530D1EF1C37F352AC013D4640B76D5EF7E25BB5A4FF28139CC25684110A4510226D80F245810814353E0E9B2D287CFF14B60307CC12E56B1A411AAC984DBB2020A1557BEFCF1640E6760D78CFF86F0073908A084EC52C10E4B873F0DEE440A4114E21008218134E170594AC4E0F448B387EC2D8B064FA82212B795C5042ECE7C3D590236A49800875831894BE45D06A9771026D8030B782C000DF658072F7821100D08A40AC250003938441663C4621CA557340C1584180788642AD6B0863BE0F10E0F5184319AB1C74E7AB29351086536C667C61E3AB1405B694864F65294B120C53B5A6CA4231302198748862862394A592254CA26D27138A96CCD64724916CD0CAB6AB29CA5566A2914D7F0C595BBF41213E7A8CC82047395CE6CA52E8D19CBBD55132F3F11262EFBF24A5EA6F08C38B9C03ED6C9CE76BAF39DF07CE704E649CF3CE4A109F8C4271AD060280A0AF8F311A818C3182C018082AA410DF188072F2C000948546014A258443148F10C6B6062180101003B, N'shorts_female_small.gif', N'1a66b244-5ca0-4153-b539-ae048d14faec', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (874, N'Racing Socks, M', N'SO-R809-M', N'White', 3.3623, 8.9900, N'M', NULL, 27, 24, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b9c7eb0a-1dd1-4a1d-b4c3-1dad83a8ea7e', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 41.5723, 53.9900, N'L', NULL, 25, 32, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839614E003100F70000B3B257C3C361878787F2F007676559EBEE4C79784A8C8642696838B4B798B8B31C4E4B3970736FB4B4B426456EC9CAE19A9542363F607E7B51A4A4A4B1B1B16A662D929292333232E3E3E3ECECECDEDEDE817F49938C44BDBDBD56523533458F3137529797AA7C7B25D8D809E0E0EC7E7FA3424E88CBCA38AFAFAF989558646667D3D3E5AAAAAA333763C7C7B79A9767C2BE1AC2C2D9494B7DADAB4A58888B2C34664E757AA9A818474F52343548625E3EBEBEBE475284696994CCCB4C5B5C5BCACAAA9E9E9E9694824A47337C7C7C565877313284B9B9B8B3B4D49B9A3B99999985844BA8A758625F4DBEBF2A6465AB413F34575666313279494A4CB7B7B7868341A2A2A2BBBAB66F6D3B908C3DBABED63E3C366C6E4E6E6E5B3B39339899C72E3E84ADADAD45444EC5C4C4313272656347A7A7A743423B7D7B6C74703E7B7930868577827D2C8B8CC04441331C318E4C4B41BABABAFEFEFEE5E5E5DBDBDBE0E0E0D5D5D5D1D1D1777777E9E9E9D8D8D8C7C7C7CECECECBCBCBC2C2C2E7E7E7EBEBEBFFFF00EEEEEEEFEFEFF1F1F1F2F2F2F3F3F3F4F4F4D5D211DFDC10938C2DC5C143FDFC37CDC944FFFF19FDFDFDFFFF01777130FCFCFCF9F9F9FBFBFBF5F5F5F6F6F6313390F7F7F7F8F8F8979241FAFAFACCCB8CF8F7085F5B3B32343EBBBBBBCCCB0C588A9A1750A1FDFC2CA6A370BFBB703D3B32BEBFDCE5E5F1A8A8A8CBCCE35D5932E1E1E63033592D314ADDDDE97D7A45B3B040FEFE01DBDAADBAB84E97923D3D3B37EBEB2C454743E1E01B3E437E37387E686739989831D7D7D7798858929134CCCCCC777544B5B63DD6D637908C27706F4467673EE5E5126362322F425481968C575887EBEB17BCBCBC484765CFD146E4E407B9B86A7E849CA19E1DD0CD11B8BA41F2F21CB0B1C2AEB6C0ACADD0989842FFFFBFAFB0405755484E5148373B40ABAA93B2AF5EF2F2F8373632BFC086888523E5E5D16A724DDDDD50ADAC86746F2F5759A4587681CCCBCBCBCC6097974C514F2F7E7FB9BFBE0FC7C7CBA29F6B8E8D1E9091BF8688BC94947E595828808067BEBC54BFBFBFFFFFFF21F90400000000002C000000004E0031000008FF0083F81B48B0A0C1830677285CB8A383C387CF9E81021527CE918B54A834D848A1238A302C58A83233C14A90204A94585829A02511223FFCFD9B49B3A6CD9B36E5E8DCF9A8E72349402951DA346952264C962A1D325488D020411900E5F93307431D0D74F4D8B9C3A7CF1E3F3B403540C162021E9938D3AAFDB793A74FA0928412358A542953A750A552B58A552B57AF60E38C2D7B76ADE19C6DE5F8FC197468D1A34997367D1A756AD5AB59B776FDBA433059B3680F1F4EACF8ED200C721FD7958CB7F25ECC7E37071E0C5AB4E8B68442F49021A5990C23466484C8A03AF25DCA7A2FF7D50CB833EDC2B60DEBD493608611324576499152438A980560A8D5FF816C77725ECB7C33FFE5EC9970E8E869B531F396409D981646B2490A71894C16566FF020CD0BF518679E6BCAA9279B739F4107DF4D1DF0300A0DD724504B0A17D4D0822B35E4E04A15F2BCC2C32C2998B08E06AC21871E6CCCB1F7DC7B0FFE03840FA57C3021313870508C2C2D38B0CC1B3988308B35E59C314289F0D0600E1D0726975E6CCDB5575B8CFFE8B14627A4D4388A0DA728830D238D548143386EB09148208840514E054B98008F2805B843456B4EB2B8DE6C0DC268DB04603080658D0E5CB0CF008E80C9810EB778A0C89969A6C18E0232BC59800D5EA021CC79AF2D772783EE3D288C0419FA498A3D2A9CE1C599853672E8168A320AC50149C0FF700B137002E385046B609A20942EE6F9E00F9A5C008E9F4E1461CA19150C1048AAABB68AE6AB8BB0514E0DE944B3C4ADDFE8FA648B78761ADD1C3904AB860A917CC283295B44320024CCEAC0EAA2CF1EB0C8021942900B17B74EE10F82DB6E2AA583A25D0142B0062CC28AB92F5C10892ECEE0520000CDC29BA6BC0B0C510304E1E02BC11416F06BE782FFEAB99610035F30CC0C9E7CB2CB101710700200FA4CD34FC4AE52ACC3C550683C053F1E6B0AF28BF09551B201B6A48C0CCB043001403F018C4373BCF3561101041EE8DC851D75FA1C25D0B6ED90C5D0587852010C2CABCBAEA1EE3A3BF1BC100C6340193FE4DB8516592BB8B5AFB675F375B00418FFA0C608642BBC6EBBEFD6CCF6063D5CA2F825BCEC42F78A5AF7EAAD68E8FCB6F825DC8412B8D984AB0DED02106C00C71879C480043EF8B45237AFDD4E295A2A5F7C81CA2AE4FCE383E6650F8E76E150839E061C296AFBF1DD9353E9033D9BEBAE6ADA127F0E8132FA04DFB3DD92BB6EFC0DC99FBD3CEF6B83DE8B38D2AFCE2DA7D6C778BB02B96BFF74F71060414BF89053DF3AC0E68F604CFA9D374F31040800017FA6F2231FFD1E048F5954007FBBF3DCFEFAF7BF5D8D2F6454A20927022102046E4F816C63E0718417B9F9892C3A13ACA0E0D4C73CC3810E012E6860BF7E86B7084EF01E165C9FF350A8C2E1556F80F0996035B630C2FC99907F29DCE0F4FF5827C00FDA66823780420F13A8BF0C06B149F123220423F88F12244301A758E2059B78C231D4B08345A4E23F9EE0041878418B325CA01785283E7F712D82F3D8800294C83926FE100B6B842200A5F8462A7D6103E770031A4BD83B08A4E10E5F0CE01423880415C0208B75DCE20F63718444F2B185545A8523634848F66DC002967C601F63948A4B64CF8785DC400842E9464C52C9949CE49EF3BA900F56B2B078546A4716628941D0150116B6245EF962F4842AF0928B4B78C22182794323DAA60D0438A609A3B08DF2D0298AA274658CBE100541B22218BEE0463C24D08429E4400C4D3806017ED0026844A1059758813555B4C76CE23246A878C213DAF0688507F8F301AB00E83F1FB0027F9260122B588181AE59CF56DE3382A4590C5C52439785D2D3810E1D26441323D1C6CC853CCCF4A0186B12D1B778B438F3E4A0229F830284B8F4A52F6588421C12919A52C42218C9C8461AD0110A7C0424239940494E929295102120003B, N'awc_tee_male_yellow_small.gif', N'2d9f59b8-9f24-46eb-98ad-553e48bb9db9', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (907, N'Rear Brakes', N'RB-9231', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 128, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'5946f163-93f0-4141-b17e-55d9778cc274', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 27.5680, 62.0900, NULL, CAST(215.00 AS Decimal(8, 2)), 17, 63, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x4749463839612D003200F700009C9B9B848283E9E3E4F6F5F6EDECEDC2BEC0E6E4E6E1E0E1DEDCDDF2F1F1FDB110D5D4D5FCFCFCFFFEFAD8D4D4FCFBF8D9D6D8D5D1D2FC6908DAD9DA919191FDB064D2CDCEF2210FFED69BC6C4C5FCF9F9CECCCEF94902FCB138C8C5C5B3ACACFFFDCAC0BDBDD2D0D1E5E3E4B1AEB2EAE9E9A29D9DAAA3A4BAAAABDDD9DAC4C1C2D0CFD0EFEEEDFFFEA8E8E6E8999595FCFEFE8A8989DFDEDEFFFDE4A1A1A1FFF98CBEBCBDFFFFB7CAC7C9F9F7F8C6C3C4C2C0C2898789FEFDEBBDB9BAA9A6A9C9C9C9B1B1B1E1E1DECDCACCFEFDFEFAFDFEF8F8F9959796AAA9A9B6B5B6DEDEE0CCC9CAA29EA2FED710918E8EDAD8D8BAB7B8BDBBBDF1EFF0ECEAEFADA8A9DCDADD8E8D8DE4E1E2C5BDBEFCFAFCB8B5B6E2DEDF837E82BAB8B8888486D4D2D4C3B6B6E2E2E3FEFDFCB5B2B2F4F3F2FBFAFAC1C1C4FEFEF9F0F1EFF2EBE3B8B0AFADABAC938E91DBCCCDC0B9B9F8F6F6EBE8E6CECDD0C2B6BAEAE9ECB5B3B88E908EFCFBFAFAF9F8FDFEFDF9FAFC8F8A8FB6B2B5E6DDDE949292D1CACAFD861BED00009CA09EBDAEB1A4A1A3F71700F34333B8B2B4D5CECE8F9190E1DED9ABA8ADCCBABF888A89A7A1A5DAD8DEC4BABB969394F9F8FAA6A4A4F20200F7F7F9B3A5A5B0B1B5BCB5B7878688C6C4C3FDFDFD929493F8F9F8F7F5F4BCB1B28B8D8DA6A5A8D6D5D78E898BFAFAF7AEAEAEE6E4E39C9898F4F3F4BAB5B3EFEEEFC4C0C0D0C6CAEFF1F3F3F2F37E7C7EECEBEAB7AFB1E1D3D3989797D1D0D4D1C9CCCBCACCC9C3C2BEBCBBBBBABBF7F8F6D7D8D8D6D4D2969493C9C2C5FFFFFDFEFFFFFFFEFFFFFFFBFEFEFDFFFEFDFFFEFEFFFEFCFEFEFFFAF9FAFEFFFE9F9F9FF9FAFADEDCDBFEFFFD989999FEFEFCBEB8B8FEFCFAFFEBC9A1A4A3C8C6C8BEB3B4FB8628FFDD7EFEED5CFEFF60E0D9DBE2DBDCFFE2B9FFE6AFE8DADDA99495FEEBE7CBC6C3A4A09FDBDCDBCCC6C58C8D8BFC6F5EC2B8BCB29F9FF8FAFAD8D1CBF2F4F18A8B8BB9A6A8BFBEC0F11410DEE4E69C9BA1DEB8B68F8D8FB0ACAD888888CDCCCBE6D1CFD1C7C7979897FDCCC4AD9898F4DDC6FFFFFEFEFEFEFFFEF8FFFFFF21F90400000000002C000000002D0032000008FF007DFDBB83E4D3A64D4768246B76E09FC3870F91FDB3D0A78E93100E1930E1222AC4330F4488E081D1AFDFBF7EFC1C8E0080E8203E1A0090A482F8B02430288810C558E0708E1E2EF274C08AF08F483F18BF4EA27C18A6591D0A145E3643D28AE6C97F524C209247E140997F57787091E501059F7FBF909574B8F4A13859502934A37164CD00ABFF1CF4F9C464C3AC1503A2B8E2920C8B1A16FFF0682A69126F28A89B281C611944D943226F3478780180CA0E3A2476800AE0459A216AA31E6AC20B7145CEC814367D4A92A0550A1C050A8470F3C8CD9820B8CC9821312F09AC67250E7C496160990C04CB5803A98308AA135E2778B7CBB061C3120FAA7AADFFB29104141D336B2E090297AB449857AD84C897C1FA5F864F14AC9842E5C64F0420328C0001155640F2C20F050C11052824B4338D206D40344C4A0EF992123F024164430C008CE141044B0CC2861B025C020B1B98D013000F3F6C9001148AA880422CFF08238C33FCACD54F033C3690A16A5D8CB1C40219F4E1441F54986308092A90204B1F6C482242281B9851801CDAD424CC3F8BFDE3CF970DB0F5D004215860810D8388120E0EB4D01242142B6061C30AE495B0C60EB3E02047049C70D94F97257DE94F31495DE6830E2ABCB0862986F8E1830990F040C325DE18828B0F2A8CC0032673CAA14A180C00D30F11C4F033CC30609EB49A435B84E00124A2ACFFA1820726F0B0CE3AF43861412C1FD003890E0EFC10803C71F46241020F0C1312110C4023C69784AEF54F0E054430C2207D84D08E2C5EC470EB3A4E2C604C323104A005014BE8E18519B4404046279DE49045161A6890C097BE18531211C0A4104218FF1880842086B0E105238C1C410A1410B8300823010CF10F04516082CB134F305094145744A00A2C27E0CBA526C410514F01044C1BC139282C6102004174810B1206E8908424EBB8609F07B274F1C5023A98488524C924238D34FEF8781211FF24A043040494908208F758D009013624C30B226BB8F0833C41EC3080149268810B146475214B206C0380CF2688249DD25A06ECF0C4041364A0CB3F13E8FFD009110B9010441C8E50E1453249E0224B0C4888206C12D3D4414E1D75F4614A38F3F8138C4344ACB6850E101060C41388895380245B6441402B2E74FC8215148C01C5185888F0821727F831CF07581C520A0B64DCD10085FDE001D634E2301089127785E2423DBC40304715A120E0820B5B1C00470E16E813C20F6A7892CD2814AA56FE51BFA4E08101C00CA08411FF88409F0A41B0F0452528A420450264BCF1C6168FB0802254310E08A8830165C8C131ECC0408868C2782928C00180B1BC01F4E339FD60000474A10A148081002EE84419EC90802C4C2303EDD0C2131C00875CA0E3188B698C4344653C01A84017C760C0085EF10F17ACE00E0438C02CFF48A08830C8E0151AB0C30156A08952D8800E1ED0C52ABAC10FA4E00518C43089143C20029D194006C05006804A400947D0C112B908036258908153F4701E6C1081389840857FC0A008E5A309D338918121406004131882010670857AC0211255D0411C9A4680016420653940802102A03700BC800CBFD04431A465154D8840070B004228BE10074F6061022B90C2170A108632106002A10018300E300215046009A148820912610C22146A556C598B1476B002371240049500C3001040802F64200C1958010266028CE99D02010080800E2CB0061FF4A30830F80703345613C63060033B30009704408D0DE4C00853184228D030C80940E0140698C01CFE61FF840588A011D3C80400B6C0250600B3260FC19A08A4309003B4A3162E18811946300022944007D4B0051010C0803718A00A05E0021326600A2AE48201C2F8853158C30F625C41150E70A3140E80802F3833151F5DC1235050851118511CA180001348B3842E04200576C4033058CA0F3B4420045F6041090CF0060464A01694F8CE0A22508A7132403906C84108B8C00524AC800DA860403857CA1A3C10E30E2250C106484900014471002E00E196C4E982508CC08DA9A0001730318D4B84430068F9852F8A41210CF1C319677046515210051DE060050218C21CD0508A27E46020AF98C0135CF0159308C615F048811A16A18122A023183C826D0392168C60FFFC080E99F0C1060C108A2CA8EF0B323880684B90806188810159C02B0D6830885DA4E303ABE08303662BA8EA26CD423DF00703827B802B944107B7C884073EB48B2794E277CBD8C2135AB18B3DFC800A89B0053B044009EA6ACE17BE0886A078D40361F0831FAD8000FF44B00B073820055718412908508637A06114C2F0450E1AC1850004010EB0588414A83B3C87F043BFF8520C6817408904D82143C380887FFFCB0C66FCE3003CF0821722608113B481BA3FFA872F5295C95F70220C0838462B8691D25F18B91FA5E207328C6C6489E8A0C26C00DA07700C911DFB43206B39C51F8D40861CF1C3478CCD2342EF20AC0004420058A0F243AC8CE52DB9E0FF0B25688511BCCCE1060443CC097D410002408A57F862B67904F1F08C5C8477288115ACC84385AC2B379A64F01F3210052602708B1D870922204E1A0866B08F78D8230D69E8410F66500C465FB7269A18E73FEA81894DFD39C510E1F03F6A700D0EB8E30285E8400BB071032F995A69AA698C0EBC8009BCF0034CFED806063A408849385B021D504005A2615FEB769826C02042010280171CCFE00F12200420C6ED6C0E70E00FDC2086A953A5C7A2ECC02A5FDE6F3ECA718171DB9B0312B086AFD7ED0F3187841876B04AA693F60D05344101E62E4435ACD1841AEC7BDD392E68971E126FEBF203042DB881C6FDB1E916CCA0DABFFE511EF19B5F900B6A860E14D95C8A4BCDEFFDD696471069B9CC67BEEE6B0704003B, N'pedal_small.gif', N'274c86dc-439e-4469-9de8-7e9bd6455d0d', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (945, N'Front Derailleur', N'FD-2342', N'Silver', 40.6216, 91.4900, NULL, CAST(88.00 AS Decimal(8, 2)), 13, 103, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'448e9e7b-9548-4a4c-abb3-853686aa7517', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (948, N'Front Brakes', N'FB-9873', N'Silver', 47.2860, 106.5000, NULL, CAST(317.00 AS Decimal(8, 2)), 10, 102, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'c1813164-1b4b-42d1-9007-4e5f9aee0e19', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 755.1508, 1214.8500, N'60', CAST(12655.16 AS Decimal(8, 2)), 7, 35, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007477789EA4AA3B41442E3169C1C2C27877AF196EFBCACADACBCBCCBABCBBFDFDF17573F02F63EFFCFCFCF6F6F77182E2EDEDED65686954595A3056F6FAFAFA5072518E8AEDF5F4EDF8F8F8AAACAC27349B5471F0506AD4B2C0AFA7BCA1FEFEFEF6F6F95D6263B2B8ADEEEDF07C7DAD2F30F4A1A4A4575C6BB2B4B4201A70BEBEBFD9DAEEC0C0D9E9E9EAB8B5EBF4F4F4778876495BEC4B52548282847D838331383AF2F2F241474C929395445BCEF1EBF323272AE5E5E60E15F1999C9C8A8C8B525A8F303ACFFFFFF82B32371A2227F4F4F76D7272D3D2DC0044FAF2F2F36371DD8D95D084A87BC4C5C7282D32D9D9DA12181C9C9EA3C0C1CD8D93934A54B2D0D1D2BFC7BA3B449DE0E0E1B6B6D7FFFFFCEAEAEBD5D6D6969998A4A4AAC6CAE70C1317484C518D8E93A9A4E9CBD1C63E4ACD9BA8984B70A7174DF6195EFCA7A9A9AFADD9F8F8FAD9D7F57A7D7F161D21929B92E1DDD4F9F6F6F0F0F0A4A7A4B6B9B7CAC9C2F1F0F2024FFADEDEDFE6E5E8F4F2F497908D2F74CE8C948B6B6D710222FBABAFA8CED1D1E9EBE1838F81B8B7B9ECE9F69598B9AFB1AFE2E1E3B1AEED8689896A8595DAD9DBF8F8F1848689B3B0ABEEEFE801080BFFFCFCD7D9D6A8A8F2837EBB003CEB003DFE949598B7B1BF9FA39FE6E3F3C6C6C164706C1628F6F7F4F5ECE5F9FDFCFEDEE3E09C9B95060E11F6F6F1204AECD8D7DAE9ECEAE5E8E6F6F7F4F4F7F70043EFE7E2E2D2D3D3FDFDFDFCFAFDF9F9F9F7F7F7F2F2F0F4EFF3DFE0DB1538FEFBFCFD9F9FA1C8C9CB1E2121FBFBFBECECEDF9FAFAF9F9FAF1F1F3D3D4D4FAFBF7EFEFF0726D6E657691232EE4E1DADCA6AEB8F9FCFAC7C6C87E91920201D96681B6CECED0FCF9F95F7595747DA4717074D1D5D3D4D3D66F838ED0CCF2183CEC798B956A6F8E6868A2DCDBD5697186E6E5E1DADDD9C8CAC5DBDBDCF3F4F4C3BFB8F3F3F3BEBEFEF3F3F428303131392E1F42D70F62EDEAE3E4A9A4CCF2EFECD5CEE0E7E7E8C2BEF0A8BADE9D9CEEE4E4E5D0CDC6505152EDEFEEFDFEFE9FA0D7F5F6F56261F2F5F5F6F7F8F9918FA88E98B5A8A8ABFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33A11B8389C48B1A2431F35DE14B2C8B163C50619C0EC9090C1A3C99308B948901162532A5918500A8495449FCC8AA8C480734700472E4A9D24520CD665CA8F198B7EB811A362538457371DDA8025B05E1E4434FEC8ABA82C971A7F2670DC70428F5E0D1FF8A256A4F0E41E800427558409234F8550B515A518A3D2EE64AE1A51F076D462090F20341B2A85D26211D60C31823BC6E180A7C4063C78105732C4D861A230CA225B5CA5C9C0AD185CDE3D6080070962453A1A1EC8D64B74C56DC87A9430C04181161DAA59BB5602BBB3C10F87FAD9A6D8E200B72B16621878A040E06F17AB5B9F52E2A296C122D1582CFF7708ABC9216D0584BC9B60608910825A0C6167DD6ABB0B53023F203A816A7C432C645CC10F08FF6831461A0C647190169C28F2401A485C62CC035F38C28106E2F95750035409C40B024BF4F0C5405A586000034724C460251B7CC20C33C694D003391AFE030E1D6E8420810411B8910B24C8005242110461B0006FEE2CA4451E31008284906D184401178864F2C80C337451481E1DD511821344ECE08439643AB1C32E6700928F418648A7842309C931067D13C4C34A4110201282006012E16798358480484C0E0513C22E504031C40D37C8E0A800430CD1470F034062501BEC3DF05E41B5C433418465DCF3CC86FED033C41B50103144183BCA70C31044BCFF11860A0D65600E146F044A431775A84040028FFC71421ACCBCE1C40CB314E4027BF718178A05A76072490E6B5457D0167F38816A0D7F7851080255E892801A3F44700311503CD280425120BA83111938E340B21F08E40F31CD6092C22E6FEC20CD0BF0C583200B5AB4B1001AD2E690C5A605E5410FA24E00D0843C1F50F00F2CB17C300C3B76FC104629A518C10B4219202A4017CE50C04B030EC0320B87BDF0D1C7359ACC00A6BF160F24C4910C2C700B26AD70C002C305E97103185008E0450BFFCC82812C0DBC0C8B03FF14C1831A12802109000755E1041802D0210F05147C30CE2CBCCCF24103C32030DD3FB2FC00EB0E3814E4403E067C628C120710FF5DD02F11A04A0F02933CF3022C77C84201D5BC604041B2BD14120218A5F850902CF480614E2EFDFD334E03B2CCC18B031FFCE2083CE9F4A58F0D8F80E984330571225D19D6261445AC371020D00BE350F0C20B8FFFF3CB2F0EF07287F019C8500A1194104407AE3334F2CF1C1F7C508EC60E504D81230F7020C438360D23CD9921AC4B903513A4B3807106E921C01B437871B11C0DDC6103062360C0C63F4F17713806E1B8034624118281F8E206A5A0870AC6F1015ED8E01FBC2882037AB10F08DAE20AEB10464C1E578530F4AB0905D182222690060B24440C6F78030028A00F0CE0621693C8DE162AF80F07E86318BCD0873EEA458D08246A1A02690218FFDE2006A68D0316B21807FFCAD10B22FDA20911C002556471BC7F3C62076F9086414A940634B8E020771040D29AB032E06100141F90832BFC418016FC620BFA78812C2E96040798A0065B13080D24718304D4040336681CD526988817B4200A38D0430D19388B5938C383021886417666805344A9208548A1115496BD61CC620FA0F8C731A471033114A105B3A00A059230320448A01435509BF222F20FD04D3009896B4013501085000040028510053E7C97AC72B8214C20340830A43301437C801683A8C73F68B0BC5C1084021018C13020908110486208A8C8D93E8AD0000CBCC01DC784C234EA310430CC001C4E93052F78018C61F4A209096881344E10FF0109B821114518863E66A143139CCA720759410CD0A10D116CC2075168C21F042080045C20128EB880301470816E04C20F3030820C7090AC59CCAB1CA9FC4026CC510A4480038B38D842037E810193CEA21C7950813322300401D4E0062150463930B03281A8408C3348C8174250012674C00A3EF0C0390670850258E2AA562D0009B40184AE1603001128C4305AD00B60BC401FE578C11D25318557EC820899E8052C3A34904454C11FFD5AD50D50503A0C644F8204B80114B886105D9881103070AA09CC200122546019CBC04635AAC1084640030857D0408CAEE08945C80318E5700051EB85023CD2800B6FC5813CB2A74307ECA31C5C2884099CE00469FFF8231385152C610D020B1308A2032085830F0251810150A11967A00215CAC0DC2038F70A572841103C6182445CAC71FAA8893F0420091AF0C009E962DADA1AA08F5E6C411E09104417DCD0045F0D830D6CC0C0D3544600A4228402514800220811063F74C0031520C209A221063844C10B7478AA08E0008310C8A0023050012AF4415781FC85ADB21040C8AA70D67164730FC368403D10D1845734411773D0432F1CA0B2062C0E11358082350FF20113A8C1077558841A9CA10BEE8620120581C524FED1844CA080001948C03D5119C781BEE08A9250C33F2220090536ED0E64DB03555EC0056A54810031C1C01DEEF002F9C2621C3E085368108200136420FF106EA04306BEF107490840103A844503C631C70FE8C2C6E3720616B80081615080436C0901144A01BB0C94C2095DE0814D6661837AE9A3055B10881EA8F78F16CE6B9EA83042D280911058D421105D800301EAB00A4480810819A0DA2C8ED83459E842060848C42B54E00E0CFCC206662D072C12100649D4608EBDD8011822A00BCF29F1037770400B00D6805E8C80489E8B9A3E2870D4C12EE4170920C4263AD1020AE861089230020FB277B1DEED21113468DA3008058C33BFAC058BC0E36EDD606C1C60816A0D10DD1C80A1BD1740E0A617AB342CA841837E355B21F508C43760310C2CE4211146F8A91A482D0A9BFCE20E4708411E3EB06252F32209FFFFB8032F54E043460F040BCA26899E87313508C8C22630014623B5E78011C0180A1160082536010182C0820B3E8D0001AA800A7724421E18788424DCF08B170CD526FAA09A331681EEA013C407CB7B8B123100BED1D5DA01C21EE83F46A00209C04F7AA56E801AE87010372CAF0BE1DC421E2EEE0F23A0C001B20086F57ED1B43C6CE295E6484541EC118247CF20017BA0300327CD32DFF14F0F0408410AA5AC903920E207A49883419270B41D6C02157BA821040512351B7E00E58DC885A2A190CC82D403814E7043065C31D34E771A1636C140121AA1A7142675211FB08537EC408B833C6108A5D8415B2140F8B450B8654462BB09145D0ABA23640BF4589EFF0448218E634080D445F8003078F00A14FCE07D6F9841BD50828076BEE10F22B0832D98568E1ACA411DBBF47E48B3090BE10000000560E00412B008265008F360079D80083EE00661802E3B805037F1041F03064360047E306E2AD009900009814003324004A5600E70D110092058A5902B37400F2BC127A8B20311500582310B3FC052CB230032D02A7CA235446004AA807CB8400184B772005003940332600006BB200033808351513DB04001E1D00058300537F006A520096008866050036E2008C9E00B0D307F347685503310F59001601501113003083047FFB03637A167B2800FF5B005A9500FA3800239B22312E0095D4006AAE00EAA900AAB000B6A04F80F0101003B, N'julianax_r_02_blue_small.gif', N'f1bb3957-8d27-47f3-91ec-c71822d11436', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 1481.9379, 2384.0700, N'46', CAST(11398.72 AS Decimal(8, 2)), 7, 34, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'83b77413-8c8a-4af1-93e4-136edb7ff15f', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 461.4448, 742.3500, N'44', CAST(13049.78 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'5646c15a-68ad-4234-b328-254706cbccc5', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 461.4448, 742.3500, N'50', CAST(13213.08 AS Decimal(8, 2)), 7, 36, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000787C7D686F2DC8D03A747779DADBDBE9EA2BF6F63BF7F7D3F6F61AC1C3C3FDFD42FCFCFCBABCBCF6F6F6656869CACCCBE4E33AEEEDEEEEEDF0BCBBC89498B3535958FDFE24B3AB6E6F7CA9FAFAFAF8F8F8AAABACDAD9E8B6C561FBFB7B7B7D20A1A4A4FEFEFEE5E569B2B4B44F744CB7B6ADF4F4F4E9E8EACAC898F7F88BE6E5597F8483E5E688868855F9F9F0A5B7A3D4D48AE8E80D3C4245B7B82A929495E4E31FF2F2F241474CE6E6E9C7C7A62B32389A9C9D31373977877A838385F4F4F64D5154E6E677C2C7BCF9F9FE23272BF1F155CDCCD1DFDF2EE5E5E6A4A18C8A8D8CFFFF64EAEAA86D70711A2126C6C16CFFFF5BEEEDB79EA2A0545A62C4B9A06B7451A8ABB5272D31FBFC9A12181C676B72BCC0D4959D98E5E54BD0D1D2B2C0AD5E6365A7A9AAC4C4C7D5D5D5383C43474C510C1317E0E0E1EAEAEBCED1D4FFFF51161D2197A29AF2F2F3CBD7C4DCDC65F7F6F8FCFCFF8D8F91FEFE02F8F8FA999A70FDFDE1D4CA72F0F1F0B4B8B78B963AC8C8C0FFFFEFFBFBA7F1F0F1F4F2F4F3F204FDFEF7D8E844879486FFFF6EE5E49AB1B710F2F2FED3CEC3FCFCC0ECEDE286898AAFB1B0828D86F5F5E1B7B7BAD6D6D7ACAEA9E2E2E3A2A7A4A5A6A8F1F2F9E1DADCFBFAFDF9F6F6949A958485899B9A95F5F55E69756E01080BD6D9D66F7079EBEBF88D939384A87BFBFBF8F4F462BEBFC0D8D8DBC6C6C3FFFCFCF7F4F5FEFD0DDEE3E0060E11E9ECEA2C312FE5E8E6FDFEFFF6F7F5F4F6F6EFEFF1E7E2E2C7D411D2D3D3FFFEFCFDFDFDF7F7F7F2F2F0F2F0F17D7F82FBFBFB9F9FA3C8C9CCF9FAFAF1F1F2ECECEEF9F9F9F9FAF8D3D4D4EFEFEFDEDE7ED4D3D7CDD592DDDB9DDEDEDCD1D5D3DDDEE0F1F10FCEC979C2C62DD7D7ADE4E4EF56601AF6F66EF7F7E8B9BCB7F1F0CAE4E4E5CECFD0E8E8C31F2223EAE3E4B5B4C4FCF9F9B8B8B95D5E5FD8D7D4A7A7ADC9CAC5B6AFA9F5F5F6F5F6F5C7C7C8F6F8F64F514CD4D5C9A2A13FA4926ECAD0818B8D81DEDC40F8FA60948C9CC4BD3EE7E7E8969799EEF0EFDFD8B8F2EFECC9D3BDF3F3F3F3F3F4F3F4F4ECEEECF9FCFAFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B061C33C0E20399C48B1A2C31D3CD63CB2C8B163C5051BCC10A9B0C1A3C99308C7840302468AAB621A500ACCD5C69CCC8AA7E410A09780069B4FA8245234564F8E121F8B94F492634A8A835B371DDAC8253082332B2B9A64AB88EE5798302068DCB80204088F1D0DA2560C060905286F274D950192CDD418B51CD71D99C7848FC95F647EE1ED180785813916A0784814C8622E1F7206771C73C7C2B30206D44059922211AE8967CAA0936CB1528E527356A5600101B36642580E3434026A18E98A6990595805C5829D38D882B4CE0C05F68110084350A0709B220E4417E0D530D0DBEF3FE0C2314351DCC78EC14318B634FF7718670F1579E51C4150C03E16415FC1876FF6D01D791C2B534E8D6FC801463B0A87FCE3480DBD11825C41A46023827C4B2C668D008648B39F410B5025D025E8C0730107036113C31216609150315188004F179C2C719802514CF80F019400104E05E13800C02F56A080003C010EC4440C845890C88108C551483408CC31470C2D1694C1188CD4A3492F3ED4F308331D8103C6154E1071C5975F12B1C60516C060100BCF80E81D420704A1423508C420826C0445C008183270E9C49E5DF2100E233139640C184E6491850E37DC30571932E8F0CA1B1638501241B1A88000140A3456509B281601010B8E14B4401840E8B046164EE8004405530071830E4EACFF5186290D6DF04A166BF000C60AF5E4614A020C2CA245154BCC90C5153EE84250311064168F7B021D204217A514D1050BD618844613579CCA83169480638417E83010861260DC50A8260B28B403375910D1C4064634A0EC816168F1841A55A02AAF09040DA8860229C4A2600C9C88F046212E1CE40C10F05E318018D98490C13FB95C820B2DF8ECA14419ADB4D2842F086D002F19F51891812F0B34908B2E150EF3CE1B2A78D30B9744807271873160AA420C801CF10613A42084C30D666421032527FCA38B06C42C00732E70FCF303126154608627031CE4C5156690414936196410823EBAF8A24B080B8492433528FC938112B0124143413F12B20A206F6CFF63E141C43870AA3A0FA4F28D09B908434C0669F9A24106CA0E034E3866B4C24541C40061C62BBFE8F78F3E0B10E3872F0D84404C2530C0A09F393668C2E52BDA148426210634ACD02FB1DE90804026E89381092640FE0F31C434E08B30C36F00442B4E7C421025B8FA40C03FF68410C23E21D0D240D59728824C0997E863132DA010C14D38ED0E148208082C11CFDF06E140C61A3A508231260BF0628306116840C73F50FB01E234C00F3F60C413601848306ED00A2098421F21F0850DFEE18B1F346018551B02130430010DC40472DA284397C450106659400D1E48881CD6B0860164C01C1A905A2AE0D0003454ED1F0D30072D7C610E732027190E305433FF04220633AC410E4DD3472E88A10F00EE63183FF8C721DEC00E0E508518C8FB8726C4D4048358A3060A5003168834105A90210B641003CB82A70155840013B50843024E400C3498C304C4C0581BE000021E704D20BDF0840C1850130DD8C07169B9A024CCE10C0124611A3884A02E7411C23590E11806F1D0C012619047B05067A46BC03174F10755FCC3124DB8811C7E70025D5025036D20D903A6D00A1EA42304CB8BC83F4277C136F8216A6218C12FEA51870A3C220EE7F89DB2F6D18B111E240A3D53C06F76A1887EFCA317CC13CC4032108108D0A21F1B00832774708A9DC1E1070BD08009E8D1CC2C34E3183C3083F49E460C5F1C8F16C31003034E00FF8A5E0C0008BD90C40F68610E5DF41004A6DA014258000840D4C10A52E0C20EC4A0053290C11BA198462842718843848203E390C300B400041A284B17F6DA872B4340832BB482110410130DD0103A0DA05417FB708629B4E1001D8483073708073AF6A1019609C41467F4417282A007128CE20B42E0C20B02F0013D3CE10E587D02349EF0840BB4A005751844271C000E5A9C6018C2308139F661823E7A4214B7E08613EA318C5CC0EF1F92F0C238D640041D94E10623309D06B667C104DC200B5D438818D830881E3C15046C680135F4D081CA56560098B5852D0CB10C716CC2018BC88630F6D180A222670464F0C40A2021571A64A30139344769F7318647FF80E04BA018473D10028CC326D620B998441ABED0D84CECE00524F840340421880214E00805A8017421308F27DCA3049DF8C51930E63873D4240CA95D0112AE908545348D6D0B30C730D0200906A4A11EBD1083294C410B3AD0C1838BF34502649005A51E2403526000231A5186417C01B9D4604707DCA10C14E42007F970831028D1083054A00A3D60C029CC71D75FF85114C49081C8BCA0567D74F30FC758809DC4700B3100C31E4818460356B600C631820759D0A64142008230EC200F8B0883118021034F4C0192B118C225FEA1E47F9882068C30C5381890CF56DEB1A026D8A2274AE2004F38D069C228DB1FA862823118C30B09888906FCE007137830FF17FA7817114683900780201291E8C52422410E2D08521B3DCCC502F491C71000A3C7E6D2C61920E1CD0C542803A70043165A11BB0DB4E20AF540824D746103E498030D6810080EFCE0E9C1A6CD17A76882D2B278905C80231299C84402AE210B4698C1091BA89A2E94E834620003080F90C42D4C410FA8D920ADFBC80503CAE0091EE471184430830380F1B9268640180D3801C016308C0844F17352334706908AD88510E31A8D00012A4E90011CE8C0134D40020D31E6BB3F9CA1174EA345A0840167989D60117EFC2D009A4D8333A46501A3F303B6E5668208E014639DCE453256B0066E505B2111E0732E8E71066648A209400D03F2D2FB8F60F8211960FF604608648C3C5FB4E11FC2F085298248E9819C21DA2411F43172D1800810C326C4D08030269916C649E0C6597000433E21056B0E24179090010F1C90002F9C821E92C8860634E1090010C30444B5896CFF618445BC5BE904D901F300C080266A407CA4EB7503925DD07F48800115A0DFF41222E8304CE22000601E172091013430C319921847134600072C5E2F8FBA7086142AD08A57B8A220B100C3A57DC0803F7018829B6ED9EF00888304808185F653081E18A1844DE0C1206D288348A4708A3FE0908202915A0E43F0F2534841D259D89D4122C0C02B006003B508DD3FC49E0B9B68A00DA7B8130BFDAB90103083007BD8C5414EA183561001AE3EFFC7FF3996CFF35C445102A60081A45BF17784A061794E98C2264C61890820EF07D746C22D46A004194C9F8C1EF1003A60445A50027BC00C4DB30FFF000798D00DC1D47F4923050BD10003900566700515B00820000E88400E42C0083BD00B65002F44A05051710A2063063AD00472000242600AA8500EE510092B00044E70690CE0100C7058AD902B37B02A409027A742040EE00583A10B4AF00A21E3046400045350011590275BE3049D000B0BC136199047323700F11432AD6006B726032B608451613DB99001FCB00067200A37B006ADE00970088766C00300E005FE100C0B00800411026718350311011B30000E30882B000C79F40F6C731382560CB31001681DE00AF6C00A2320235058019DC0050F000BF4000BAE200BB9F019031110003B, N'julianax_r_02_yellow_small.gif', N'df85e805-af87-4fab-a668-c80f2a5b8a69', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 419.7784, 769.4900, N'40', CAST(12142.60 AS Decimal(8, 2)), 5, 22, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F700007A7B82383B463D404CCC2F2EBA878ACDBBC5898B94F4E7E5B903029A9CA4E9F4FD432F61F9F9FDBBC4CFF2BABDE2E1EB686974CD6E6DDBDADCC00A0A89666D912D30F1F0F9E3E2F2A6ABBB9BACBAEEEEF85E6169AC0101F1FBFEF5F5F5D4D4DA4D515CD9BFBFEC9594DDDEEBF6F5FD444953E6D7DAD8B5B6E7E5EA42444DFEFEFEE9E8F5FFF2F2EEEEEED0505050545ED1D2D4A4A5ACFCFCFCB3B5BA95999EF5F5FAC1C2C5EAEAE94E5365EDEDF66C70787F1114F0F0F19A010161656FDDDDE0F1F2F453586355556172757E404552EFEFF4B2747784868FDBE6E9A7B2C0C3C4C8DE8887E0DEE77D818ADCDDF2A04E4ECD8486FAFAFAFCFCFF484C54E5E6E6F8FEFFE8E7E9CCCDD0494E5ACCC9CCF9EFEAEAE9ECC9A5A6BEC0C2F8F7FCBD464795768A860203D1CDD2F8F8F95B5961AEB2B7EAEAF7EAE9F2AAABAFBBBBBEB0AFB5C31212C8B5BAB314148C9198F1F1FCE2E2E4562F3FA35458B3393AE1E1E2D1D3E378333CB3BCC4D00503A51418EDEEF2D29A9B7C3C65A2787E8A1919C091959F8994C0C8D1BF2424464957C6C7CAECEBF5CBD8E6E8E0DFE5E4F7E6EAF94A4E6234333F5B5D679A4546C0BEC8ECEBECE47271D71413CECDDAE7E6F3A0A1A7F7F8FBE5E3E5B2B2B6D6DBE1FCFFFF9A95B5A62322F4F3F4EBE3E6E7EDEDF4F3FEE6EFF8AA6868565C67FEFEFD70191EB6B8BC554B55CDD2D6B72B2D5157694E4671CC0F0EEBA6A6A53C44FBFBF9EFF7FBF5F3FAABACC8A6ABAED6D7DF9A1516FBFBFBF3F4F53F4658A19DA1EEEFFBFDFDFDF3F2F2484551A8A7AAE4E4E7B1B7C4FDFCFDF9FAFBEBEBFDAB0D0CF9F9FAC1CCDDF3F3FACCC2D3B76B6DB70D0BAF1F203F4E66A96E77AC3230E7E9E8BAB6C0A64851B1BFCAB7B7CCBA5E5F5F4673ECECF8FFF7F7F8F9F9BCA3A6575486E4E1E37A5F698E8BB08686A8DAACAFA65C5FC6ACAFF9C0C0C9C8D0BDBAD6654C56FAFAFEE8E8F9FCF9F9DAD9E5D6D9EED5D4E8955C62FDFEFEECECEEEBEAF2EBECF5BA6D71C2C5D8C6C6D3DECACE91182CE6C9C9EBECFBDD3738950B0CCDCEE5E0615EF7F7F7580E32D6D7D9595F6FFFFFFF21F904010000FF002C00000000500031000008FE00FF091C48B0A0C183027559D987B0A1C387102346A4426303218918336A84C809970F32946A6D1C491223311B8C02A4B854B2A54B8454700911B0A8D7CB9B3777A98110A0C4862332700A1DA942C53F1A2920B819CA74A3357D150000694A55A28855D03E6084D3E4488232577EC0F1B5A5C598AA19590C401021238C040020986204C0C011376E9AC0406B154F8F0A0C35B64BA3830C990001782D4AC037E23D043BC27CCB3412C02208096CC44063A5F1C3707886F9491626D4462B64045CF41C31933EC86192AD096344A3810000584734A6895E0F5272F04D985D5B622C4553E0E87EE8651CB5057142FC23D063C28430041AB21B2829DB8223CB21FE765BB0805B0E8146AA5FFFF370048405AA309C0D8F70940B7EAAC631109829548F55D771E1D03C7C2CA0891EF43524021E1C80910841327CF3DF75D221040902603C409F2E2DC0F1031D2D04F54F389184668241FB3CF11F64F31CE4C004AD04D6900AFBDC40852F2D1053920C30D0A083282F04F1C20643D0C0C63D78203007429C34B2A21F2712A4052A1C78E39033A51830840F5CEA30841B36F090912E5DE880052F53F042041102A049440578AC8200140751D64205FF71504127042D81000782B072101D47BC00C20B42249A68102080E003252D44E4CC100220CA0B620108A0A94A03ACB24A0FE038D4099EABE819A9407B0C93CC9F2E1C30900CFE318030482AA960B1E6206C0A30881064386AC343304C11C00B5308B0012E5DCCF283045724B04D24009282C5AF0D1D82E71A3D3422E30973A8CA411B22FCE3010002A482C32D38183083041F30AB0600530CC288102550D2100C02A4202C1936701285312430F089071D38006D188BF4A4844326F8D103B67288F8CF397B34330CAB14DC92CA2D8350A2E11B2A98F3CF1BBA5800C71183BCF04209B81CE4CC14298010800163F0E0410B2404FC090FAF4092240588A5F0820403FAC101B6A611C402149BACCA811DB70C81CE3F35BC934B39930063412D2B48C180182F60110416651804400041A480CB2752EC822309C648F1060F123CF6C53F332C5242FE094344E15008F81C4D9B410704B706027948F7892E66D8C3801952E442420E394821C5074204290AD1031112000829E4A6CB2424B4F083314594ECC909917050CF2B5EF41240B1333C7442181C5C870D12ED0C648B288B9032CC04082C714E150C20227739D5688008311A68F0CF15538882456E03E9200016643C8202432B9040050A16A85008122220304D152BFC4382F644F870CD435CE0D38A1A19249184125AFC93C0228AB8451F86C1010E0CC001FF1006034820050B20A21A66A8C13F8CC180040800665710880466278018FC430670D8C53F34B082593CC00A75E8C73D9261825C3C4E0557204209540311706000101488C11130908603E82080FE3AF8C23090F1050E200012BB00C5166CF1865C5443471630C33FDC21841408003CFF90DD145EF0884F54A3165688540EEA30832E34800008F842077230822D58E1113A98E1521ED2805F80811C4DA0C11DA2218E417089166D38810224B007542060007F3004213EB09F11568304E650010D2AB5013135616F0068C10D7C818E4258C20A12188113026188224EA303E8B0C22E744409011041070F91C11D32E0061DE800023E88060D1611871E08C204AFD0860430210623B4614E8EB843062139894958800157101B0860C08E2180CE83FBF0000FCE800E71A881000460063C92D1032380A2055B4081366E3083001041149C70C8281A700A380C611006FE304534B6410A0E0CC31B9D30010A26C18464B2A10203F88601D470016138D10B3590C21636300522CC601F3E004109D0F08633E4C0026FA8463A24210804B48178F80841EF08D20F0194E0052B6D0826EE708A212CC20D81A08432FE348C9EB641104045C51C5AF10554E4010CB1A803037370013368E01D3E28560CAEE1032C94A06C05A10249D700054164EB174C28840672B0826A882353307D482D02110D0AD8210381380005E210070A78630F50C86B04BE3087397CA10243C50013A4508EC25ACE0B10A8A8BD2090827A5960052B98C4192EE0847C7CA10DCAC8C326708101755CA008B0F0C23F6CD013514C6546FF080612D6410A5C88A1166E10FEC0329AC09F2A744001C5F84519EC400B54C8411A93286C256A40DC2D54B583FF6842628EA08B604054034E70023AB2708C0214200BFD40011310E1841514820434E8890E74211123EC800207F0801A18E10F1DA0400385B80022CC700171606008A4B0432066610F73E4C21835A8842E3E602822A4E11F3158C42036B085E65D601239D0802B30910F187C201E08F240276AB0020BFC03026B324044CE0288381C82BC3154840FBAF08011E40016D5F80710A491004A1C6116A3582074DD718672A0A10458788133FE21810B0EA214FF3083056A2045068C601640E0010C1EF006715982180C90440AACD78588DCA017B7EC82723CC08841DCC200240002FE13D07183225CA0A00928C50348F00F0BB8039224800504402080210C84B15880C00A18C080F679A11A3F7880148801070958E03C8CD6C5114A10041FC41322514883126880867E08C40044C0813FE8F0090F1761120FF8C15BE4F1833378B8104510581A88F00201D4CE28695844104A40837FAC4017C43003101CCD801AD1C10A243043502E51027F4C411618098A0C6A6114220F42113838C27E2C20E11114610B63708715AC6081577B8107612302233CF08F6AEB406825F020D7CA41072A00380A8F6881255A500E12C02008A208820E4E5B9249E220153110980C7C31897D3CE21F39E0C10F88910363D45907A10E0092FFA10BF2D2A104314B0125FEAA7C83B2D4C002BA78C42E5AD00E60282173A97841065DC2091F104111A94800305A00040D78A01D25F3C0161EA18234EBE073B81948C7C9EB39970660083078442D78500E0B8C22443CD882014020248BE244022040572A000003297881133C68A0C389510B25604100420840250752946A7721058B78FBD32FD18F74D6A21F363842E6368003B20D05062F40170E82700425D0C11652300631FAF10C9E603B003EA08243FAC18845707D6F5C17455583CC0846F864E63819C53FE800010128626C290340137C10042204000BFEC081000020A6877820012F58440A78D1A84194800853889728687083AA5C23564408B2280A4F0410043CEC1B9801790D8152948ED7821841B9011A74003A5E0C6210530001046240078E47A116DB77892E6A110562F8CD1709D8C09A88708BFD634107653015ECA00BD546772AD07132507F63000CFF700DCE900569800668900612303FC0400C6C077F05781075B781DC377FC4B00FB610517A700AB2E00647701765300B9057092E687F324080FF101000003B, N'hotrodbike_f_small.gif', N'0a72791c-a984-4733-ae4e-2b4373cfd7cd', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 308.2179, 564.9900, N'40', CAST(12405.69 AS Decimal(8, 2)), 5, 23, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000330000660000990000CC0000FF0033000033330033660033990033CC0033FF0066000066330066660066990066CC0066FF0099000099330099660099990099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF0000FF3300FF6600FF9900FFCC00FFFF3300003300333300663300993300CC3300FF3333003333333333663333993333CC3333FF3366003366333366663366993366CC3366FF3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC9933CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF6600006600336600666600996600CC6600FF6633006633336633666633996633CC6633FF6666006666336666666666996666CC6666FF6699006699336699666699996699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF3366FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF9933009933339933669933999933CC9933FF9966009966339966669966999966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC3399CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFFCC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFFCCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0000FF0033FF0066FF0099FF00CCFF00FFFF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33FFCC66FFCC99FFCCCCFFCCFFFFFF00FFFF33FFFF66FFFF99FFFFCCFFFFFF21F90401000010002C00000000500031000008FF00FF091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336ADCC8B1A3C78F20438A1C49B2A4C9932853AA5C9911058A812E17C664F9D0E5CB7F3313E6A4C9D0A6C099366FC27C19D367CEA04371DE44CA1169D1A542952A25FA1467D2A7547F46C558542AD0A855A58A9D9AD52BD4A654C3EE547BD6AC58AC3E377E2DBB96EED9AF6FCB7A9C9B97205BAD7DB1F6952B74EED6BF79E3B2DDC95362E1AD8D2F328D4CB9B2E5CB9831C77518D62063C6223743040DD82F6490558FA6BD0B152F5EB2A8B3AA7EEC96B651D96D3BFE9D8D7BE86EBB1F7F034ECD3AF06AD292831237EEB6F9F290AAB5B65DEE9A7A6EC249A7FA7EAEDC79EBD399C38B121F4FBEBCF9F3E8D3AB5FCFBEBDFBF7EF0302003B, N'no_image_available_small.gif', N'b96c057b-6416-4851-8d59-bcb37c8e6e51', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 343.6496, 539.9900, N'48', CAST(9130.77 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'3de9a212-1d49-40b6-b10a-f564d981dbde', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
- , (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 343.6496, 539.9900, N'52', CAST(9262.31 AS Decimal(8, 2)), 6, 31, CAST(N'2007-07-01T00:00:00.000' AS DateTime), NULL, NULL, 0x47494638396150003100F70000CDC9CAC3C2C2F0F3EBDAE3D088987527262839472C45553399A68A746868C4BFC0BDB9BAD0CBCBC1CBB8685758BDC5B891958EC1BBBC847B7CDCD2D3583B3ECDD5C6192510B1BCA8F1F0F1828C75C9C3C4888282433C43F8F8F88E8B8C243119576649E6E5E5ECF4E4939191ABB2A7D6D5D562794C938C8CE3DDDD545151A3A1A3A8A1A1B2ACAC9B9494B4B3B3CAA5A5E8E6E6A39293ACAAACE9EFE2778966622F31EEEEEE7C7A66E9E9E8D2DBCAAA9B9CE6E9E4333234A29E9FFCFCFB7D8B736B65684C494AB59E9D757374444244B3AFB1A4B495E6E2E1C2B2B2E2E1E1161616645D607A75747E7A7BFCFBFCBAB3B66F815DDDB8B79C9699F6F1F2A09F9C3E3A3CCCBCBED9D8D95E6A585C56596E6163E6EDDD6F7B68BBB7B89A999AECEAEB6E696BF6FAF2F8FBF5918484FBFEF8646063DEDDDE4A4548766D70B6A2A22C3028595455FCFAFB7C7679F6F6F67E906D8B9980332E334C6E2D4F58463D1515504C51303C25D6D9D1EEE6E8484144F5F4F4D4D0D2ABA7A8CFCECFDBD6D7B6BDB0D1D2D2A2A6A05B5B5B010301252022F4F4F1858484FDFFFE6B1010534A4D0614013B373BCBD7BF8B88834D5249ACBA9FA8AEA5A2AF9AF3F8EF847E80F9F6F6F0EFEFE5E4E1FBF8F8DFD8D95F5A5F8B878AB09191F3F2F2FEFDFE373436FFFFFCBFBEBF958D969A8D8DF0EEF0DCAFAEF6F4F5B1A6A85D714ADBDFD9333831373139B5C5A6EFEFEF2C401CDDDDDCEDECEADDDBDBFEFCFDEFEBEC43493FF9FAF81E181F939C8EEAEBEBD7D7D74E484ED5D3D4C7C7C6130E15101D080D090E302A2EFBFBFBFAFAFAFAFBFBFDFEFEF5F5F5FBFAFBA8B496A8B79BC6C4C77F6A6BFAFAF94F6140908688F6F7F5FAF9F9F3F3F4822D2E673F41FCFBFAAC8E90F4F4F6FBFAFADBDCDBF4F6F7B7A6A5F7F7F7FDFDFE7B8275777B78737B70908080A1B08FE4E3E4E3E6E1A39A9985828B90A0806D6C70E9EDE7A4A9A2FBFCFDA7A5A7948988636760D8D3D2F9F9F9D4D4D4D4D2D33C4039AEA4B09F9AA0927F7E2800066968696863672D2B2F585C50D9D9D7535751575158FCFCFCFDFDFDFEFEFEFFFFFF21F90400000000002C00000000500031000008FF00FF091C48B0A0C18308132A2CE86FA14385C41E4A24E884818E699B5EBC88C29114A94D0B268AFC070C54165C045905E8014EE09491023550A010AD86CD1AD0A02142148D014C896E54A82AF3EED68236440811CAC447860321303B3CC3700D0332296D08D1A1A043D8BF863F1DEE52E2EBDE225FBECE4858F2AB8A2A55C9C086B571A20C9822ACC28A0C918E032F5EFBFA0CECB2AF962F197A05E212B7C04D629149FE8D525500434117BC96384E0C8ACFE39100BAFCABC3C1E0AC417F1E675311E1B3C80521CBD52A417087AF412048E4901416DC08DAAE1F76B812EC5F1F5E79420C0CA4E4832225A9B0D86A306324A84996833BACB4F95F915ABF4604FF98A04FCDB21CB61C115252604E860B03C8101CD64FEE407D6DB4FF7497A9163D446AA4324824029943C23A6A2841C82C5C4452016F0815A2C636FA85050312C9A8F1C120A93C409018016C038F12D0610107750435D487054654A85737A97C60C220440866D01D10A8A7841A73FCF0C8009F08E485055BB8A8900DC878D1C824869C50C415BBC0F301089F9C32883EA87C75D00E902048E22006BCD180200720F445002334D106139A14E14A62C894E3491CBFE49147157114904B10F058D0C03F611C30C83A3B2C24C903300E32482F6A10605004652C52C5A45578F20B210504E1052723E19209218B64228126A620618A146300A1469FE90824422B8374FF23804477D8D2672B390CD4C73E712C31063648201101126988924C22BFF0A0C244F214C043262DF4C129415F8C308B1A162C75CB3F0358C08B21CD48248223AD7CF0C100FEC8D36B0C0BF8A187417844200A1ABF0892D7210A3551CB191EBC29503FFF7402F03F515AD0883D845471C53F8CF4520B043E3CF448015074DBCA0D594890C61104F573883F03FFC3891531045145640735A4EF1A2CFCCBCF3FF569F90F04052CF34F086D1410C79BAB2852C0390F6560C1310C2B62C10D4F08340CC820FFEBCFCB0261D2C21A8B6C7B9017B568A1C13FF8FEC38F3F60F703302DEB587081408548500B079C7E338827A92924093E1F14198A7307CCFA4F2C3037FFDD37C0605DD1480A750063102084A460C5BF808B0D764325C063401830FF3305184A0C21100134FE99500EA9D88C4C2D6010A0C83285C0EC38E04C37D4F4151B54614841C3A4B0C80AFF445CB9D7208BFDCF3905BCF1153FC3FC63C9194A2820101483385241428F7C0047271C7080BBDBA750CE4F7DAEF70EF6CBF876C1C43D0B0FE4022168BCD40FD4006FCFBD3F439CEBB5402FB3A027C0642C338820591EF486050388472DD471098190631050881830C0F6957E00E36B5F13883FB4D18214946120FE48411E4443BFC63DCD773B2002080206366014C719F6A8052804220903F8A21CE63088084030390E9C0100327BC32084C70F2734647DC0709C04FF05E28726EC4C2080B8C710DE05167EBC4C6CFC08C6CBBAF0814734F08160B11F1006B2850FF0621B101A0823EC0005000C10189D88E03F98E7A8A5C1AC03DB030B58C426057E09C403F7E8810401B73DAF39D11F87E0860166050CC3390D062950C52806920387C1C12B0331820556D106552C0E661124839510A0257E10C3775FE99D4014608F1408441041C0A11CEB13447F98F01FE198C50F4802B50F0A6403050800411AE0335B0CE4135068C516EA900514ACEE81805A8622BED1897F38E39318741CD89220010EE000034400020E30E9C438BA2F1BFFB8801D9EE73A500A840F719042418C30081E70F21F22E8C5325E418836B0A120C814C0011461FF8C5808A338986CA5E39CA0030E8002178B68821330F8B4289AB01F1DF00116E61031A635B087FF000507F25390030E88181750C310C6F10B75D8E015AFA8C4282A81814AE0401677688505321001C704A31D6A248829CE400550F04013BD1322C8A2E80C4AECA2179C0462219D18B33EE4C21E07A1C120F0310229642213E500830E706009148023096680011E6411822420A0178348041F58919DC73DEE1F2C08C20816E0090F884D9A6FF5472760E18111EC00039408462BDDFA0F76EC63090711C01086900834AC8108939804360C2286013CE20DCBB0C3A294B0041BC0E20AF6194C103C008ABA22E471C080410B18E084D6BE6FA8C0180600B2005583FFEC01086720C42080E00934E4A2087B9B01238C40836518400DC8558322ECF0012638C31FAE604568BD738611B8631193884550EF2AB66074A0A8CE70831C992A1700EC030D06A1C41314A0850214C01005E04326A8408EE21AC00E7630C00140700A02C0417F0688801E8891842430EDAEFE280207D2710B2280A11284A55F14B7978D7E6423180C1C5E1CFF11815C68C2203028020034C007158422054C58420AF60B050218A30103104090FEB10339186201E9F02E206C30D8811461111AF04716D6E007863AD089866B47365C59C8F5854CAFFE58010710539024286014D670C10A748002764880195B1083410616A216F0A108B0C0050C48120C2876A2FF1D1BE0C09A0D5105E07A0F8BC5E9C74D41D664EF0D6414718685416E518412BC43175EE80238C0A189366C0D93430DA50D96300933B0146C1D00198605928F3264A121018883049E2B1064B6A33EFC2864438248DEF53564174058C374F9210364C420022ED8451F70E085218802D2AEEE1D3534718677B8DA6B4BEEC7A9BD93871108A4034458C31E860730646E0F8EA8EE5D1F61568C16E4429D07D18506F6D0852E28401C7DE8431D96809221FE833E18B0810796C08E7F2CB921FC684743A44197385863202358440C9CE0BB28521BA76183A02DFFC1802670E00B0951001F9E000A0D1C4117E0C8C4224C510C627CE10B470841082C818991E7C51FD9FFD876BE0582842C5C702018A8420216F7310C3F8D24582CE1070FF1B267A823171E58080316A080152CE01DAF084010C6608557C080AD526C873206526D7D47101DFFF0C33CE2E00E0CFE43069EF006C7AA01B0F5FDA3CD5FC337AA07D2837A10E15D0B294108BE50095AD0E21F4310382508028C7664FA654F94A2D96FE68D3334E120E538833AF0A0A5053AF0E67CE41D5C2BB90B873CA30FED2808273CB1046C141064ED30E1CD0DF7B50E54AE143AD002112262103DD4610D3140C1BBABBD76A811EF1F4E60810478A0C785F8A30F327043C804F28E02244008B2F8473B86815327CE2F88C28858126220014FFC1B21B720E634AC60FAB37FC5703113C8EE115AD0064F38DB219C68813D00604882048010601883F2FEF177C0F7ED1FC278C206C0C0031B250403F640046310037D500A088102A6A00EBCE5190FD10F7A00037777107DE0094420013AE02E07F10C11C00409500744900F32A3105EC0019910033DA0020A30019800009D31021B80061CB006ED161C36500F9982061BB0020A80094950022E70025AA0056BC00343D01D0F81039A500729000693B001CC20014C0006FB700659E002EEF61903B30B8210079E100429E07268100477B208F500086181012ED006294004677006D1D6087D802FC7E61A4FA33BEEE001FAE0093CA0875520085ED06E3945100101003B, N'roadster_black_small.gif', N'ae638923-2b67-4679-b90e-abbab17dca31', CAST(N'2008-03-11T10:01:36.827' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[Product] OFF
-GO
-SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] ON
-GO
-INSERT [SalesLT].[SalesOrderDetail] ([SalesOrderID], [SalesOrderDetailID], [OrderQty], [ProductID], [UnitPrice], [UnitPriceDiscount], [rowguid], [ModifiedDate])
- VALUES (71774, 110562, 1, 836, 356.8980, 0.0000, N'e3a1994c-7a68-4ce8-96a3-77fdd3bbd730', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71774, 110563, 1, 822, 356.8980, 0.0000, N'5c77f557-fdb6-43ba-90b9-9a7aec55ca32', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71776, 110567, 1, 907, 63.9000, 0.0000, N'6dbfe398-d15d-425e-aa58-88178fe360e5', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71815, 111451, 1, 738, 202.3320, 0.0000, N'810e5535-2bdb-4d83-b26d-796e5cff1a1b', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71815, 111452, 2, 835, 356.8980, 0.0000, N'daeb0cfa-807c-46ac-8458-ffccef36b5b2', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71815, 111453, 2, 874, 5.3940, 0.0000, N'09f90eb4-24de-4812-825e-45520602b437', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111454, 1, 953, 728.9100, 0.0000, N'b8a9720f-1f6f-4fe1-ad4a-ac70d4c905bd', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111455, 1, 954, 1430.4420, 0.0000, N'edc86c40-ecbd-45af-912b-ae37d177821a', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111456, 2, 715, 29.9940, 0.0000, N'9f7406e4-25c9-431a-9891-f419e3f5253d', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111457, 4, 712, 5.3940, 0.0000, N'ee2ce69c-24eb-47ff-ab6c-bd5aabdcd6e9', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111458, 3, 883, 32.3940, 0.0000, N'affbb13e-55a8-4fa8-9cd7-809b1816c30d', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111459, 1, 961, 445.4100, 0.0000, N'b4e5503b-0fd8-4f2f-8675-e899db180280', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71816, 111460, 1, 948, 63.9000, 0.0000, N'5f4f0aa9-acc6-4ef7-ab68-17d0748a5512', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71831, 111790, 2, 869, 41.9940, 0.0000, N'73bc96fd-863b-441c-aeea-25387c2d17ac', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71831, 111791, 1, 782, 1376.9940, 0.0000, N'a5f59647-47b7-48fc-9000-0830e623981a', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71831, 111792, 6, 867, 41.9940, 0.0000, N'14f64fdc-4405-47b4-965c-b4f506515e8a', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71846, 112149, 2, 936, 37.2540, 0.0000, N'7232fd67-8db7-42f8-ad0d-6185299430f1', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71846, 112150, 1, 739, 818.7000, 0.0000, N'9a32772b-9b98-4b22-aa2b-f4e5ffd2a23e', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71846, 112151, 1, 984, 112.9980, 0.4000, N'78557d82-1267-4f7c-93a7-e53ae2a3a85c', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71846, 112152, 2, 981, 461.6940, 0.0000, N'3a26f840-c413-4bef-aeff-b8d6218698e6', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71856, 112331, 1, 962, 445.4100, 0.0000, N'62b3d72f-3586-40ac-a24e-a6f07eb7ca4a', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
- , (71856, 112332, 1, 945, 54.8940, 0.0000, N'4733918f-da34-4d30-b5b4-32f7537e609d', CAST(N'2008-06-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[SalesOrderDetail] OFF
-GO
-SET IDENTITY_INSERT [SalesLT].[ProductDescription] ON
-GO
-INSERT [SalesLT].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate])
- VALUES (8, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (64, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (128, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime))
- , (209, N'Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (513, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (554, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (594, N'Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight.', N'32b82c92-e545-4da0-a175-0be710b482fe', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (627, N'All-weather brake pads; provides superior stopping by applying more surface to the rim.', N'ebf2f0a4-89f2-4d31-be48-d8fd278f3024', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (630, N'Wide-link design.', N'28c4682c-38b2-4b61-a2ae-bcac7c7ce29b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (647, N'Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.', N'7ad9e29f-16cf-4db0-b073-cc62d501b61a', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (661, N'Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women''s version.', N'd61c9d54-22c3-4563-a418-0b9dc7e03850', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (848, N'Lightweight, durable, clipless pedal with adjustable tension.', N'03acbb19-749a-48a1-b77e-5d2a48e8dc3a', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1020, N'The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame.', N'f4c70a6b-bbe8-4774-9d75-393d3f315e9b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1196, N'Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort.', N'c65bee64-4dba-47ec-91cd-31356ba379e1', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1205, N'Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets.', N'58d86ede-0519-4263-a264-a2b5b01a6c7b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1208, N'Thin, lightweight and durable with cuffs that stay up.', N'9f436663-525d-4cc2-85ba-47d20bcea0ec', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1210, N'Traditional style with a flip-up brim; one-size fits all.', N'66f84b21-1a43-49d3-8883-09cdb77fffef', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1211, N'Unisex long-sleeve AWC logo microfiber cycling jersey', N'12f60253-f8e1-4f76-8142-6232396b8f17', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1487, N'Adapté à tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable.', N'5c1dab3a-4b31-4d9d-a14f-3cb61949b79b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1488, N'Ce vélo offre un excellent rapport qualité-prix. Vif et facile à manœuvrer, il se conduit en toute tranquillité sur les chemins et les sentiers.', N'79065ec8-2080-4120-a4ea-bfa7ea1f1f9d', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1490, N'Conduite sur terrains très accidentés. Idéal pour tous les niveaux de compétition. Utilise le même cadre HL que le Montain-100.', N'2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc', CAST(N'2008-03-11T10:32:17.973' AS DateTime))
- , (1493, N'Vélo d''adulte d''entrée de gamme ; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons à blocage rapide.', N'7943455f-3fbe-44c0-9ac2-7ee642d3944b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1502, N'Vélo de qualité pour tous usages, doté d''un bon niveau de confort et de sécurité. Présente des pneus plus larges et plus stables pour les sorties en ville ou les randonnées du week-end.', N'e5288050-bc5b-45cc-8849-c7d4af2fe2b6', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1503, N'La selle rembourrée offre un confort optimal. Le porte-bagages nouvellement remanié offre diverses possibilités d''ajout de paniers ou de sacoches. Ce vélo reste parfaitement stable une fois chargé.', N'28b132c3-108c-412d-9918-a8c9297dfb73', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1504, N'Voyagez confortablement et avec élégance. Confort et sécurité maximum. Large éventail de vitesses pour gravir toutes les côtes. Sa fabrication en alliage d''aluminium haute technologie est synonyme de robustesse, sans ajout de poids.', N'e3bac4a6-220c-4e5e-8261-51e08906c0e8', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1509, N'Patins de freinage pour tous les temps ; freinage renforcé par l''application d''une plus grande surface sur la jante.', N'5ed8186a-6049-42b1-b1b0-3b1f899c538b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1510, N'Conception liaison large.', N'64723c0c-09d5-497d-83a3-4561818a8f1c', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1517, N'Doté du même alliage en aluminium que notre cadre HL haut de gamme, le ML possède un tube léger dont le diamètre est prévu pour offrir une résistance optimale. Version femmes.', N'f3cd990a-b70d-43c8-a075-934a3e98b5aa', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1537, N'Pédales automatiques légères et robustes avec tension réglable.', N'6a60e7f6-a5cd-4e7b-8612-9340e46bf66d', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1571, N'Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un très bon rapport qualité-prix.', N'e95e1259-b822-40ee-aa86-7de9f9e0f0ea', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1587, N'Cuissards résistants à l''usure pour utilisation intensive, doublés à l''intérieur en Spandex, sans couture, peau de chamois anti-bactérie pour un meilleur confort.', N'e11a3c2a-b074-48f9-8226-16d65c2f91c2', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1594, N'Maillot manches courtes classique et anti-transpiration avec contrôle de l''humidité, fermeture avant à glissière et 3 poches arrière.', N'fb2a5474-9d83-4a9b-bbbd-8ffc9036866e', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1596, N'Fin, léger et résistant avec des poignets qui restent en place.', N'31d4905c-d37c-4128-bcff-4a35da9c1bb7', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1598, N'Style classique avec une visière relevable ; taille unique.', N'fb627d1b-2933-4fbe-a6a4-bf69f2814ec2', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1599, N'Maillot de cycliste en microfibre avec le logo de l''équipe AWV, manches longues, unisexe.', N'4aae6d4f-8320-4f32-99de-bb3b1b13f1ef', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (1600, N'Orphan record to deletion test', N'4aae6d4f-1111-4f32-99de-bb3b1b13f1ef', CAST(N'2020-06-01T00:00:00.000' AS DateTime))
- , (1605, N'Chaque cadre est fabriqué artisanalement dans notre atelier de Bordeaux afin d''obtenir le diamètre et l''épaisseur adaptés à un vélo tout-terrain de premier choix. Le cadre en aluminium soudé à chaud présente un tube d''un plus grand diamètre, afin d''absorber les bosses.', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
-GO
-SET IDENTITY_INSERT [SalesLT].[ProductDescription] OFF
+
GO
-INSERT [SalesLT].[ProductModelProductDescription] ([ProductModelID], [ProductDescriptionID], [Culture], [rowguid], [ModifiedDate])
- VALUES (2, 1210, N'en ', N'623741c2-74bd-4ce1-a554-1fe8c0606b4b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (2, 1598, N'fr ', N'6d7b1148-6159-4ec5-b469-d106ffef6ca5', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (5, 647, N'en ', N'56b6b980-c1ca-4545-a5ba-edc4c14bdcf9', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (5, 1605, N'fr ', N'6cc243bc-b8fa-4bd2-9392-8ead11c55406', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (9, 1020, N'en ', N'14c44869-3696-4b30-929a-3adffc8243de', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (9, 1571, N'fr ', N'649557cd-028e-4a1f-b5d5-71c09a6ae268', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (11, 1211, N'en ', N'03c12575-f1bf-48ad-a483-d1185d24ce2c', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (11, 1599, N'fr ', N'000aa434-8c55-4a8e-a850-9ae32edf537b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (17, 661, N'en ', N'd91f0507-baa5-4b44-a0e6-a6acef29f066', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (17, 1517, N'fr ', N'87365776-a0a1-4580-b080-b18f21d8cb1e', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (20, 128, N'en ', N'f57a0614-ec87-4f51-ab3e-f889d37440f6', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (20, 1490, N'fr ', N'70b555e3-ac30-4a42-8959-339738dac806', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (22, 64, N'en ', N'b301b583-2d7f-4c19-afa9-01d142f8ae2d', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (22, 1488, N'fr ', N'a73f5bf1-ad79-4703-9bfe-5f6f87705516', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (23, 8, N'en ', N'397fa9e9-eef0-42dc-b27a-5b9a717bb237', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (23, 1487, N'fr ', N'a96e7527-4414-43a3-b52d-26a57d0ae88f', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (24, 1208, N'en ', N'2d4d6267-b8d4-4345-ba19-9334b6bc7055', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (24, 1596, N'fr ', N'984a725c-9095-47e3-8a2f-8be4ff45d2c0', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (31, 209, N'en ', N'c44f974f-ffb2-44fe-abac-fab53e7a896a', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (31, 1493, N'fr ', N'67a11e38-08f8-43cf-a6ec-b832a9b34d58', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (32, 1205, N'en ', N'7dd01ecf-d739-4fdf-8574-aec55267323c', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (32, 1594, N'fr ', N'71123dec-1396-4c4e-80c8-3efd3d5c13d9', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (34, 594, N'en ', N'49ece470-9fdb-48fb-9d80-46ae0e3ef8fc', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (34, 1504, N'fr ', N'c7deacd9-f36d-467e-9159-ea8e0b705dbf', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (35, 554, N'en ', N'8d57b85b-1c3d-4773-b326-a62fdd1cd378', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (35, 1503, N'fr ', N'220652e7-47ee-4f99-9eb1-f3597520ffbc', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (36, 513, N'en ', N'f35f7fac-4479-4748-81d1-7adec2de9917', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (36, 1502, N'fr ', N'5c1d62aa-c221-4090-b7de-15c5f976d379', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (37, 1196, N'en ', N'46f1f2f9-33dc-4384-baa9-9c70d83a44ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (37, 1587, N'fr ', N'2691d6fd-b45e-4604-b2ef-61d5accf47ab', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (63, 848, N'en ', N'9e7855e4-3c99-460a-bba5-9b45486b8fbe', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (63, 1537, N'fr ', N'62ebf8f0-bc2c-4726-bca0-2c7f4aee336b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (102, 627, N'en ', N'5b74c2c4-d71a-4d8d-9ddb-e376816fbf21', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (102, 1509, N'fr ', N'a72f9088-ef86-4fd2-aa13-efbb1aac404b', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (103, 630, N'en ', N'035f5b8e-7728-4412-ba63-0cea7cd79a6c', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
- , (103, 1510, N'fr ', N'83b25658-4554-4679-ae8d-f31a506356eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+
+INSERT INTO [Person].[CountryRegion] ([CountryRegionCode] ,[Name] ,[ModifiedDate])
+ VALUES ('GB','Great Britan', '1 May 2007')
+ , ('FR','France', '1 May 2007')
+ , ('DE','Germany', '1 May 2007')
+ , ('CA','Canada', '1 May 2007')
+ , ('TK','Tokelau', '1 May 2007')
+ , ('AU','Australia', '1 May 2007')
+ , ('DD','For Delete Tests Only' ,'1 May 2007')
+
+-------------------------------------------------------------------
+GO
+SET IDENTITY_INSERT [Sales].[SalesTerritory] ON ;
+INSERT INTO [Sales].[SalesTerritory]
+ ([TerritoryID], [Name] ,[CountryRegionCode] ,[Group] ,[SalesYTD] ,[SalesLastYear] ,[CostYTD] ,[CostLastYear] ,[rowguid] ,[ModifiedDate])
+ VALUES
+ (1, 'Canada', 'CA', 'North Canada', 6771829.14, 5693988.86, 0.00, 0.00, '06B4AF8A-1639-476E-9266-110461D66B00', 'Apr 30 2008 12:00AM'),
+ (2, 'France', 'FR', 'Europe', 4772398.31, 2396539.76, 0.00, 0.00, 'BF806804-9B4C-4B07-9D19-706F2E689552', 'Apr 30 2008 12:00AM'),
+ (3, 'Germany', 'DE', 'Europe', 3805202.35, 1307949.79, 0.00, 0.00, '6D2450DB-8159-414F-A917-E73EE91C38A9', 'Apr 30 2008 12:00AM'),
+ (4, 'Australia', 'AU', 'Pacific', 5977814.92, 2278548.98, 0.00, 0.00, '602E612E-DFE9-41D9-B894-27E489747885', 'Apr 30 2008 12:00AM'),
+ (5, 'United Kingdom', 'GB', 'Europe', 5012905.37, 1635823.40, 0.00, 0.00, '05FC7E1F-2DEA-414E-9ECD-09D150516FB5', 'Apr 30 2008 12:00AM'),
+ (6, 'Tokelau', 'TK', 'Pacific', 4325344.37, 2344344.40, 0.00, 0.00, '05FC7E1F-2DEA-414E-9ECD-222222222222', 'Apr 30 2008 12:00AM'),
+ (7, 'Delete Orphan', 'DD', 'Delete Tests', 0.00, 0.00, 0.00, 0.00, '05FC7E1F-2DEA-414E-9ECD-111111111111', 'Apr 30 2008 12:00AM')
+ ;
+
+SET IDENTITY_INSERT [Sales].[SalesTerritory] OFF;
+DBCC CHECKIDENT ('[Sales].[SalesTerritory]', RESEED, 5000);
GO
-SET IDENTITY_INSERT [dbo].[BuildVersion] ON
+-------------------------------------------------------------------
+
+
+SET IDENTITY_INSERT [Person].[StateProvince] ON ;
+
+
+INSERT INTO [Person].[StateProvince]
+ (StateProvinceID
+ ,[StateProvinceCode]
+ ,[CountryRegionCode]
+ ,[IsOnlyStateProvinceFlag]
+ ,[Name]
+ ,[TerritoryID]
+ ,[rowguid]
+ ,[ModifiedDate])
+ VALUES
+ (1, 'AB ','CA','0','Alberta', '1','298C2880-AB1C-4982-A5AD-A36EB4BA0D34','Feb 8 2014 10:17AM'),
+ (2, 'BC ','CA','0','British Columbia', '1','D27FCC6E-BB99-438B-BA86-285CEEB2FA53','Feb 8 2014 10:17AM'),
+ (3, 'BY ','DE','0','Bayern', '3','D54E5000-A0DA-46D1-86B0-B8FE16C9F781','Feb 8 2014 10:17AM'),
+ (4, 'ENG','GB','1','England', '5','3E3CB3F8-44B9-44D9-A1C3-CBFB11E0A7DA','Feb 8 2014 10:17AM'),
+ (5, 'FM ','AU','1','Australia', '4','3202DA35-AED4-40E2-9EC4-27C17F420170','Feb 8 2014 10:17AM'),
+ (6, 'HE ','DE','0','Hessen', '5','834FC3DF-B60D-4F94-95BD-AEF8A9FB74E8','Feb 8 2014 10:17AM'),
+ (7, 'DD ','DD','0','Delete Test', '7','33333333-2222-1111-0000-AEF8A9FB74E8','Feb 8 2014 10:17AM')
+
+SET IDENTITY_INSERT [Person].[StateProvince] OFF;
+DBCC CHECKIDENT ('[Person].[StateProvince]', RESEED, 5000);
GO
-INSERT [dbo].[BuildVersion] ([SystemInformationID], [Database Version], [VersionDate], [ModifiedDate]) VALUES (1, N'10.50.91013.00', CAST(N'2009-10-13T00:00:00.000' AS DateTime), CAST(N'2009-10-13T00:00:00.000' AS DateTime))
+-------------------------------------------------------------------
+
+SET IDENTITY_INSERT [Person].[AddressType] ON ;
+Insert INTO [Person].[AddressType] ([AddressTypeID],[Name],[rowguid],[ModifiedDate])
+ VALUES (1,'Billing', '00000001-0000-0000-0000-000000000000','1 May 2007')
+ , (2,'Home', '00000002-0000-0000-0000-000000000000','1 May 2007')
+ , (3,'Main Office', '00000003-0000-0000-0000-000000000000','1 May 2007')
+ , (4,'Primary', '00000004-0000-0000-0000-000000000000','1 May 2007')
+ , (5,'Shipping', '00000005-0000-0000-0000-000000000000','1 May 2007')
+ , (6,'Archive', '00000006-0000-0000-0000-000000000000','1 May 2007')
+ , (7,'For Delete Tests Only', '00000006-dddd-0000-0000-000000000000','1 May 2007');
+SET IDENTITY_INSERT [Person].[AddressType] OFF;
+DBCC CHECKIDENT ('Person.AddressType', RESEED, 5000);
+GO
+-------------------------------------------------------------------
+
+
+
+SET IDENTITY_INSERT [Person].[ContactType] ON ;
+INSERT INTO [Person].[ContactType] ([ContactTypeID] ,[Name] ,[ModifiedDate])
+ VALUES (1,'Owner', '1 May 2007')
+ , (2,'Sales Bod', '1 May 2007')
+ , (3,'Marketing Bod', '1 May 2007')
+ , (4,'Apprentice', '1 May 2007')
+ , (5,'Shop Manager', '1 May 2007')
+ , (6,'Time Lord', '1 May 2007')
+ , (7,'For Delete Tests Only','1 May 2007')
+
+SET IDENTITY_INSERT [Person].[ContactType] OFF;
+DBCC CHECKIDENT ('Person.[ContactType]', RESEED, 5000);
+-------------------------------------------------------------------
+
+
+
+
+SET IDENTITY_INSERT [Person].[PhoneNumberType] ON ;
+INSERT INTO [Person].[PhoneNumberType] ([PhoneNumberTypeID] ,[Name] ,[ModifiedDate])
+ VALUES (1,'Mobile', '1 May 2007')
+ , (2,'Home', '1 May 2007')
+ , (3,'Office', '1 May 2007')
+ , (4,'Space Station', '1 May 2007')
+ , (5,'Den', '1 May 2007')
+ , (6,'Shed', '1 May 2007')
+ , (7,'For Delete Tests Only','1 May 2007')
+
+SET IDENTITY_INSERT [Person].[PhoneNumberType] OFF;
+DBCC CHECKIDENT ('Person.[PhoneNumberType]', RESEED, 5000);
+-------------------------------------------------------------------
+
+INSERT INTO [Production].[Culture] (CultureID ,[Name] ,[ModifiedDate])
+ VALUES ('', 'Invariant', '1 May 2007')
+ , ('ar','Arabic', '1 May 2007')
+ , ('en','English', '1 May 2007')
+ , ('es','Spanish', '1 May 2007')
+ , ('fr','French', '1 May 2007')
+ , ('he','Hebrew', '1 May 2007')
+ , ('dd','For Delete Tests Only','1 May 2007')
+-------------------------------------------------------------------
+SET IDENTITY_INSERT [Production].[ProductDescription] ON
+--
+INSERT [Production].[ProductDescription] ([ProductDescriptionID], [Description], [rowguid], [ModifiedDate])
+ VALUES (1, N'Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride.', N'8e6746e5-ad97-46e2-bd24-fcea075c3b52', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+ , (2, N'This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road.', N'7b1c4e90-85e2-4792-b47b-e0c424e2ec94', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+ , (3, N'Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100.', N'130709e6-8512-49b9-9f62-1f5c99152056', CAST(N'2008-03-11T10:32:17.973' AS DateTime))
+ , (4, N'Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims.', N'f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+ , (555, N'All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip.', N'741eae59-5e59-4dbc-9086-2633392c2582', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+ , (666, N'The plush custom saddle keeps you riding all day, and there''s plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded.', N'ddc955b2-843e-49ce-8f7b-54870f6135eb', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+ , (777, N'For Delete Tests Only', N'9cfed570-180a-44ea-8233-55116a0ddcb9', CAST(N'2007-06-01T00:00:00.000' AS DateTime))
+--GO
+SET IDENTITY_INSERT [Production].[ProductDescription] OFF
+
+DBCC CHECKIDENT ('[Production].[ProductDescription]', RESEED, 5000);
+------------------------------------------------------------------------------------
+
+SET IDENTITY_INSERT [Production].[ProductCategory] ON
+GO
+INSERT [Production].[ProductCategory]
+ ([ProductCategoryID], [Name], [rowguid], [ModifiedDate])
+VALUES
+ (1, N'Bikes', N'cfbda25c-df71-47a7-b81b-64ee161aa37c', CAST(N'2002-06-01T00:00:00.000' AS DateTime)),
+ (2, N'Components', N'c657828d-d808-4aba-91a3-af2ce02300e9', CAST(N'2002-06-01T00:00:00.000' AS DateTime)),
+ (3, N'Clothing', N'10a7c342-ca82-48d4-8a38-46a2eb089b74', CAST(N'2002-06-01T00:00:00.000' AS DateTime)),
+ (4, N'Accessories', N'2be3be36-d9a2-4eee-b593-ed895d97c2a6', CAST(N'2002-06-01T00:00:00.000' AS DateTime)),
+ (5, N'Mountain Bikes', N'2d364ade-264a-433c-b092-4fcbf3804e01', CAST(N'2002-06-01T00:00:00.000' AS DateTime)),
+ (6, N'Road Bikes', N'000310c0-bcc8-42c4-b0c3-45ae611af06b', CAST(N'2002-06-01T00:00:00.000' AS DateTime)),
+ (7, N'For Delete Tests Only', N'02c5061d-ecdc-4274-b5f1-e91d76bc3f37', CAST(N'2002-06-01T00:00:00.000' AS DateTime));
+
+
GO
-SET IDENTITY_INSERT [dbo].[BuildVersion] OFF
+SET IDENTITY_INSERT [Production].[ProductCategory] OFF
+
+DBCC CHECKIDENT ('[Production].[ProductCategory]', RESEED, 5000);
+------------------------------------------------------------------------------------
GO
-DBCC CHECKIDENT ('[SalesLT].[Address]' , RESEED, 5000);
-DBCC CHECKIDENT ('[SalesLT].[ProductCategory]' , RESEED, 5000);
-DBCC CHECKIDENT ('[SalesLT].[ProductDescription]', RESEED, 5000);
+
+SET IDENTITY_INSERT [Person].[Address] ON
+INSERT INTO [Person].[Address]
+ ( [AddressID]
+ ,[AddressLine1]
+ ,[AddressLine2]
+ ,[City]
+ ,[StateProvinceID]
+ ,[PostalCode]
+ ,[SpatialLocation]
+ ,[rowguid]
+ ,[ModifiedDate])
+ VALUES
+ ( 1 , '568, avenue de l´ Union Centrale' , NULL, 'Paris' , 1 , '75009' , 0xE6100000010CB29379698576484080D3196A34B00240, '2D53A7FC-8017-412D-A591-B10BAC54F9B7', 'Dec 21 2013 10:09AM')
+,( 2 , 'Charlottenstr 844' , NULL, 'Ingolstadt' , 3 , '85049' , 0xE6100000010C79066342C6694840E2315709E9B72640, 'DF254102-23C7-4820-AE4A-6A9F0668C8BA', 'Aug 15 2013 12:00AM')
+,( 3 , '9093 Gilardy Dr.' , NULL, 'Milton Keynes' , 4 , 'MK8 8ZD' , 0xE6100000010CD94C1C1F15FE4940047C4899A541E7BF, '513BF254-97B8-433B-B467-3079487A2BD4', 'Jun 23 2014 12:00AM')
+,( 4 , 'Celler Weg 504' , NULL, 'Poing' , 3 , '66041' , 0xE6100000010C00000000000000000000000000000000, '70764525-A746-4F90-B7BF-DD71D6DE2BC9', 'Oct 19 2012 12:00AM')
+,( 5 , '3985 Dolores Way' , NULL, 'Perth' , 5 , '6006' , 0xE6100000010C7EEC03B2ACEE3FC0965FFABC6BF75C40, '9A804484-17AF-4360-B83B-330CC89634AB', 'Jan 17 2014 12:00AM')
+,( 6 , 'Skywalker House' , 'Hoth', 'Sky Town' , 2 , 'WA3' , 0xE6100000010CF5586E1185CD4940D17D33328402D9BF, 'A9121E78-13EA-476B-BDA4-6C6F654E0D55', 'Dec 1 2013 12:00AM')
+,( 7 , 'Delete Orphan' , NULL, 'Wakanda' , 7 , 'WA3' , 0xE6100000010C682356A0785F48405B59264AFD410540, 'A9121E78-DDDD-DDDD-BDA4-6C6F654ECD55', 'Dec 1 2013 12:00AM')
+
+
+SET IDENTITY_INSERT [Person].[Address] OFF
+
+DBCC CHECKIDENT ('[Person].[Address]', RESEED, 5000);
+
diff --git a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL
index 696d2f4..31a68a8 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL
+++ b/src/API/AdventureWorksDemo.Common.Tests/DatabaseSetup/RestoreDatabase.SQL
@@ -1,8 +1,8 @@

USE [master];
RESTORE DATABASE [$TARGET_DB_NAME] FROM DISK = N'/var/opt/mssql/backup/$BackupFileName' WITH FILE = 1,
- MOVE N'AdventureWorksLT2022_Data' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME".mdf',
- MOVE N'AdventureWorksLT2022_Log' TO N'/var/opt/mssql/data/"$TARGET_DB_NAME"_log.ldf',
+ MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/$TARGET_DB_NAME.mdf',
+ MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/$TARGET_DB_NAME_log.ldf',
NOUNLOAD,
STATS = 5
;
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs
index 15b387b..17468c8 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs
+++ b/src/API/AdventureWorksDemo.Common.Tests/DockerMsSqlServerDatabase.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Net;
+using System.Threading;
using AdventureWorksDemo.Common.Tests.Helpers;
@@ -34,8 +35,10 @@ public DockerMsSqlServerDatabase(string databaseName)
}
public readonly string DatabaseName;
+
// internal Microsoft.Extensions.Configuration.IConfiguration? configuration;
private const string Image = "mcr.microsoft.com/mssql/server";
+
private const string Password = "!Passw0rd";
private const string Tag = "latest";
private static readonly int ContainerPort = 1433;
@@ -51,12 +54,12 @@ public DockerMsSqlServerDatabase(string databaseName)
internal Microsoft.Extensions.Configuration.IConfiguration AppSettings => CommonHelper.Configuration.GetConfiguration;
private static int PublicPort => _sqlServerContainer!.GetMappedPublicPort(ContainerPort);
- private string? GetBackupFullName => Path.Combine(GetBackupLocation!, AppSettings["Database:FileName"]!);
+ private string? GetBackupFullName => Path.Combine(GetBackupLocation!, AppSettings["Database:DataBaseForTesting"]!);
private string? GetBackupLocation => AppSettings["Database:Location"]?
.Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName);
- public static async Task Create(CancellationToken cancellationToken = default)
+ public static async Task Create(CancellationToken cancellationToken = default, bool backupTestDatabase = false)
{
var db = new DockerMsSqlServerDatabase();
@@ -64,9 +67,42 @@ public static async Task Create(CancellationToken can
await db.CreateDatabase(cancellationToken);
await db.PrepareDataForTesting(cancellationToken);
CommonHelper.Configuration.DatabaseConnectionString = db.ConnectionString;
+
+ if (backupTestDatabase)
+ await db.BackUpTestDatabaseAsync(cancellationToken);
return db;
}
+ public async Task BackUpTestDatabaseAsync(CancellationToken cancellationToken)
+ {
+ string backupFileName = AppSettings["Database:BackupScriptName"]?
+ .Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName)
+ ?? string.Empty;
+ if (!File.Exists(backupFileName))
+ {
+ throw new FileNotFoundException(backupFileName);
+ }
+
+ string query = File.ReadAllText(backupFileName)
+ .Replace("$TARGET_DB_NAME", DatabaseName)
+ .Replace("$BackupFileName", AppSettings["Database:DataBaseForTesting"]);
+
+ SqlConnection.ClearAllPools();
+
+ await using var connection = CreateConnection();
+ await connection.OpenAsync(cancellationToken);
+
+ await using var command = new SqlCommand("Select db_name();", connection);
+
+ foreach (string commandText in CommonHelper.Sql.SplitSqlQueryOnGo(query))
+ {
+ command.CommandText = commandText;
+
+ DisplayCommandText(command.CommandText);
+ await command.ExecuteNonQueryAsync(cancellationToken);
+ }
+ }
+
public ValueTask DisposeAsync()
{
// //
@@ -94,25 +130,27 @@ public async Task PrepareDataForTesting(CancellationToken cancellationToken = de
SqlConnection.ClearAllPools();
- await using var connection = CreateConnection();
+ await using var connection = CreateConnection(DatabaseName);
+
await connection.OpenAsync(cancellationToken);
- await using var command = new SqlCommand("Print 'Hello World';", connection);
+ await using var command = new SqlCommand("Select db_name();", connection);
foreach (string commandText in CommonHelper.Sql.SplitSqlQueryOnGo(query))
{
command.CommandText = commandText;
- System.Diagnostics.Debug.WriteLine(command.CommandText);
+ DisplayCommandText(command.CommandText);
await command.ExecuteNonQueryAsync(cancellationToken);
}
}
- private static SqlConnection CreateConnection()
+ private static SqlConnection CreateConnection(string databaseName = "master")
{
var masterConnectionString =
- $"server=localhost,{PublicPort};User Id=sa;Password={Password};Initial Catalog=master;Encrypt=false";
+ $"server=localhost,{PublicPort};User Id=sa;Password={Password};Initial Catalog={databaseName};Encrypt=false";
var connectionStringBuilder = new SqlConnectionStringBuilder(masterConnectionString);
- System.Diagnostics.Debug.WriteLine($"\r\n\r\n\r\n{masterConnectionString}\r\n\r\n\r\n");
+
+ System.Diagnostics.Trace.WriteLine($"\r\n\r\n\r\n{masterConnectionString}\r\n\r\n\r\n");
return new SqlConnection(connectionStringBuilder.ConnectionString);
}
@@ -136,19 +174,33 @@ private static async Task HealthCheck(CancellationToken cancellationToken)
return false;
}
- private void CloneBackUpFile()
+ private async Task CloneBackUpFileAsync()
{
var url = AppSettings["GitHub:BackUpFile"];
- if (!Directory.Exists(GetBackupLocation)) { Directory.CreateDirectory(GetBackupLocation!); }
- using WebClient wc = new WebClient();
- wc.Headers.Add("a", "a");
+ if (string.IsNullOrWhiteSpace(url))
+ {
+ Console.WriteLine("Backup URL is not configured.");
+ return;
+ }
+
+ var backupLocation = GetBackupLocation;
+ var backupFileName = GetBackupFullName;
+
try
{
- wc.DownloadFile(url!, GetBackupFullName!);
+ Directory.CreateDirectory(backupLocation);
+
+ using HttpClient client = new();
+ client.DefaultRequestHeaders.Add("a", "a");
+
+ byte[] fileBytes = await client.GetByteArrayAsync(url);
+ await File.WriteAllBytesAsync(backupFileName, fileBytes);
+
+ Console.WriteLine("Backup downloaded successfully.");
}
catch (Exception ex)
{
- Console.WriteLine(ex.ToString());
+ Console.WriteLine($"Error downloading backup: {ex}");
}
}
@@ -158,7 +210,6 @@ private async Task CreateAndStartContainer()
{
try
{
- CloneBackUpFile();
await semaphore.WaitAsync();
if (_sqlServerContainer == null)
@@ -203,7 +254,7 @@ private async Task CreateDatabase(CancellationToken cancellationToken = default)
throw new FileNotFoundException(filename);
}
var restoreQuery = File.ReadAllText(filename)
- .Replace("$BackupFileName", AppSettings["Database:FileName"])
+ .Replace("$BackupFileName", AppSettings["Database:DataBaseForTesting"])
.Replace("$TARGET_DB_NAME", DatabaseName);
SqlConnection.ClearAllPools();
@@ -222,7 +273,7 @@ private async Task CreateDatabase(CancellationToken cancellationToken = default)
TimeSpan.FromSeconds(4),
TimeSpan.FromSeconds(6)
]);
-
+ DisplayCommandText(command.CommandText);
await CreatePolicy.ExecuteAsync(async () => { await command.ExecuteNonQueryAsync(cancellationToken); });
}
@@ -236,6 +287,7 @@ private void DeleteDatabase()
new SqlCommand($"ALTER DATABASE [{DatabaseName}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE",
connection))
{
+ DisplayCommandText(command.CommandText);
command.ExecuteNonQuery();
}
@@ -243,6 +295,7 @@ private void DeleteDatabase()
{
try
{
+ DisplayCommandText(command.CommandText);
command.ExecuteNonQuery();
}
catch (SqlException ex)
@@ -255,6 +308,13 @@ private void DeleteDatabase()
_deleted = true;
}
+ private void DisplayCommandText(string commandText)
+ {
+ string setting = AppSettings["Logging:TestContainers:SQLDBConfiguration"] ?? "";
+ if (!setting.Equals("None"))
+ System.Diagnostics.Debug.WriteLine(commandText);
+ }
+
private void OnStopping(object sender, EventArgs e)
{
try
diff --git a/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs b/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs
index f91e3ac..c8bee8c 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs
+++ b/src/API/AdventureWorksDemo.Common.Tests/Helpers/HelperSql.cs
@@ -14,21 +14,19 @@ public static partial class Sql
public static DataTable GetDataTable(string query)
{
var sqlConn = new SqlConnection(DockerMsSqlServerDatabase.Current!.ConnectionString);
-
- DataTable dt = null;
+ sqlConn.Open();
using (sqlConn)
using (var cmd = new SqlCommand(query, sqlConn))
{
- sqlConn.Open();
// create data adapter
- SqlDataAdapter da = new SqlDataAdapter(cmd);
+ SqlDataAdapter da = new(cmd);
// this will query your database and return the result to your datatable
- dt = new DataTable();
+ DataTable dt = new();
da.Fill(dt);
- sqlConn.Close();
+ //sqlConn.Close();
da.Dispose();
+ return dt;
}
- return dt;
}
public static List GetDataTableAsList(string query)
diff --git a/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtesionsTests_PadRight.cs b/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtentionsTests_PadRight.cs
similarity index 95%
rename from src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtesionsTests_PadRight.cs
rename to src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtentionsTests_PadRight.cs
index 60b8418..07bc269 100644
--- a/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtesionsTests_PadRight.cs
+++ b/src/API/AdventureWorksDemo.Common.Tests/Tests/StringExtentionsTests_PadRight.cs
@@ -5,7 +5,7 @@
namespace AdventureWorksDemo.Common.Tests;
[TestClass]
-public class StringExtesionsTests_PadRight
+public class StringExtentionsTests_PadRight
{
[DataRow("{{PadRight:X:0}}", "X")]
[DataRow("{{PadRight:X:3}}", "XXX")]
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj
index 4967cef..62dd70e 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/AdventureWorksDemo.Data.Tests.reqnroll.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -15,17 +15,18 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature
index ec8299b..ec66e47 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceAddTests.Feature
@@ -8,13 +8,11 @@ Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IAddressService'
And I don't reset the database after the scenario
-
-
Scenario: AddAsync
Given I reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid |
- | Wind in the Willow | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 |
+ | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid |
+ | Wind in the Willow | Ping Pong | Fiction | 1 | AB11 1XX | 00000000-0000-0000-1111-000000000000 |
And I call the method 'AddAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -25,27 +23,25 @@ Scenario: AddAsync
| IsFailure | IsSuccess | Message |
| False | True | |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | United Kingdom | AB11 1XX | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
- | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | Wind in the Willow | | Fiction | United Kingdom | AB11 1XX | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-1111-000000000000 | Wind in the Willow | Ping Pong | Fiction | AB11 1XX | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
+ | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-1111-000000000000 | Wind in the Willow | Ping Pong | Fiction | AB11 1XX | 1 |
-
-Scenario: AddAsyncShortAddressLine1
+Scenario: AddAsyncLongAddressLine1
Given I reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | {{PadRight:X:2}} | | Fiction | United Kingdom | AB11 1XX | England |
+ | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid |
+ | {{PadRight:X:1234}} | Ping Pong | Fiction | 1 | AB11 1XX | 00000000-0000-0000-1111-000000000000 |
And I call the method 'AddAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -53,29 +49,29 @@ Scenario: AddAsyncShortAddressLine1
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
- | IsFailure | IsSuccess | Message |
- | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 2 characters. |
+ | IsFailure | IsSuccess | Message |
+ | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 1234 characters. |
- And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | XX | | Fiction | United Kingdom | AB11 1XX | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ Then the results property 'Value' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-1111-000000000000 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | Ping Pong | Fiction | AB11 1XX | 1 |
+
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
-Scenario: AddAsyncLongAddressLine1
+Scenario: AddAsyncShortAddressLine1
Given I reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England |
+ | AddressLine1 | AddressLine2 | City | StateProvinceId | PostalCode | Rowguid |
+ | {{PadRight:X:2}} | Ping Pong | Fiction | 1 | AB11 1XX | 00000000-0000-0000-1111-000000000000 |
And I call the method 'AddAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -83,33 +79,31 @@ Scenario: AddAsyncLongAddressLine1
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
- | IsFailure | IsSuccess | Message |
- | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 1234 characters. |
-
- Then the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England |
+ | IsFailure | IsSuccess | Message |
+ | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 2 characters. |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ And the results property 'Value' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-1111-000000000000 | XX | Ping Pong | Fiction | AB11 1XX | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: AddBatchAsync
Given I reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid |
- | How | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 |
- | Now | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000002 |
- | Brown | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000003 |
- | Cow | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000004 |
+ | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | Rowguid |
+ | How | | Fiction | AB11 1XX | 2 | 00000000-0000-0000-0000-000000000001 |
+ | Now | | Fiction | AB11 1XX | 3 | 00000000-0000-0000-0000-000000000002 |
+ | Brown | | Fiction | AB11 1XX | 4 | 00000000-0000-0000-0000-000000000003 |
+ | Cow | | Fiction | AB11 1XX | 5 | 00000000-0000-0000-0000-000000000004 |
And I call the method 'AddBatchAsync' with the parameter values
| Key | Value | TypeName |
| model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable |
@@ -121,37 +115,34 @@ Scenario: AddBatchAsync
| false | true | |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England |
- | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | United Kingdom | AB11 1XX | England |
- | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England |
- | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | United Kingdom | AB11 1XX | England |
-
-
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
- | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England |
- | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | United Kingdom | AB11 1XX | England |
- | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England |
- | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | United Kingdom | AB11 1XX | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 2 |
+ | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | AB11 1XX | 3 |
+ | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 4 |
+ | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | AB11 1XX | 5 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
+ | 5001 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 2 |
+ | 5002 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000002 | Now | | Fiction | AB11 1XX | 3 |
+ | 5003 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 4 |
+ | 5004 | 5/24/2024 12:34:56 PM | 00000000-0000-0000-0000-000000000004 | Cow | | Fiction | AB11 1XX | 5 |
Scenario: AddBatchAsync2ShortAddressLine1
Given I reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid |
- | How | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 |
- | {{PadRight:X:2}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000002 |
- | Brown | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000003 |
- | {{PadRight:X:1}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000004 |
+ | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | Rowguid |
+ | How | | Fiction | AB11 1XX | 1 | 00000000-0000-0000-0000-000000000001 |
+ | {{PadRight:X:2}} | | Fiction | AB11 1XX | 2 | 00000000-0000-0000-0000-000000000002 |
+ | Brown | | Fiction | AB11 1XX | 3 | 00000000-0000-0000-0000-000000000003 |
+ | {{PadRight:X:1}} | | Fiction | AB11 1XX | 4 | 00000000-0000-0000-0000-000000000004 |
And I call the method 'AddBatchAsync' with the parameter values
| Key | Value | TypeName |
| model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable |
@@ -167,31 +158,30 @@ Scenario: AddBatchAsync2ShortAddressLine1
| 'Address Line1' must be between 3 and 60 characters. You entered 1 characters. |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | XX | | Fiction | United Kingdom | AB11 1XX | England |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | X | | Fiction | United Kingdom | AB11 1XX | England |
-
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
-
-Scenario: AddBatchAsync2LongAddressLine1
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 1 |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | XX | | Fiction | AB11 1XX | 2 |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 3 |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | X | | Fiction | AB11 1XX | 4 |
+
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
+
+Scenario: AddBatchAsync2LongAddressLine2
Given I reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince | Rowguid |
- | How | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000001 |
- | {{PadRight:X:12345}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000002 |
- | Brown | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000003 |
- | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England | 00000000-0000-0000-0000-000000000004 |
+ | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId | Rowguid |
+ | How | | Fiction | AB11 1XX | 1 | 00000000-0000-0000-0000-000000000001 |
+ | {{PadRight:X:61}} | {{PadRight:X:62}} | Fiction | AB11 1XX | 2 | 00000000-0000-0000-0000-000000000002 |
+ | Brown | | Fiction | AB11 1XX | 3 | 00000000-0000-0000-0000-000000000003 |
+ | {{PadRight:X:234}} | {{PadRight:X:123}} | Fiction | AB11 1XX | 4 | 00000000-0000-0000-0000-000000000004 |
And I call the method 'AddBatchAsync' with the parameter values
| Key | Value | TypeName |
| model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable |
@@ -202,23 +192,24 @@ Scenario: AddBatchAsync2LongAddressLine1
| IsFailure | IsSuccess |
| True | False |
And the results property 'Message' contains
- | Expected |
- | 'Address Line1' must be between 3 and 60 characters. You entered 12345 characters. |
- | 'Address Line1' must be between 3 and 60 characters. You entered 1234 characters. |
+ | Expected |
+ | 'Address Line2' must be between 3 and 60 characters. You entered 62 characters. |
+ | 'Address Line2' must be between 3 and 60 characters. You entered 123 characters. |
+ | 'Address Line1' must be between 3 and 60 characters. You entered 61 characters. |
+ | 'Address Line1' must be between 3 and 60 characters. You entered 234 characters. |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | United Kingdom | AB11 1XX | England |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | {{PadRight:X:12345}} | | Fiction | United Kingdom | AB11 1XX | England |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | United Kingdom | AB11 1XX | England |
- | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | {{PadRight:X:1234}} | | Fiction | United Kingdom | AB11 1XX | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000001 | How | | Fiction | AB11 1XX | 1 |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000002 | {{PadRight:X:61}} | {{PadRight:X:62}} | Fiction | AB11 1XX | 2 |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000003 | Brown | | Fiction | AB11 1XX | 3 |
+ | 0 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000004 | {{PadRight:X:234}} | {{PadRight:X:123}} | Fiction | AB11 1XX | 4 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature
index 4913c18..8f04eb3 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceDeleteTests.feature
@@ -18,73 +18,37 @@ Scenario: DeleteAsync1234
And the result is
| IsFailure | IsSuccess | Message |
| True | False | Unable to find record to delete! |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | False |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
-
-
-Scenario: DeleteAsync1034
+Scenario: DeleteAsync7
Given I reset the database after the scenario
When I call the method 'DeleteAsync' with the parameter values
| Key | Value | TypeName |
- | AddressId | 1034 | int |
- Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ServiceResult |
- And the result is
- | IsFailure | IsSuccess | Message |
- | True | False | Unable to delete, record is referenced elsewhere! |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | False |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
-
-
-
-Scenario: DeleteAsync1111
- Given I reset the database after the scenario
- When I call the method 'DeleteAsync' with the parameter values
- | Key | Value | TypeName |
- | AddressId | 1111 | int |
+ | AddressId | 7 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
| IsFailure | IsSuccess | Message |
| False | True | |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | True |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature
index 0b86ca5..51c7323 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateBatchTests.feature
@@ -11,8 +11,8 @@ Scenario: UpdateBatchAsync01
When I populate a list of the model 'AdventureWorksDemo.Data.Models.AddressModel'
| AddressId | AddressLine1 |
- | 640 | Ping |
- | 1092 | Pong |
+ | 1 | Ping |
+ | 2 | Pong |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| models | {{models}} | IEnumerable |
@@ -23,19 +23,19 @@ Scenario: UpdateBatchAsync01
| IsFailure | IsSuccess | Message |
| False | True | |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping | | Wokingham | United Kingdom | RG41 1QW | England |
- | 1092 | 5/24/2024 12:34:56 PM | 79cdd89c-3c91-48db-8277-46d04aad7251 | Pong | | Auburn | United States | 95603 | California |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 5/24/2024 12:34:56 PM | 79cdd89c-3c91-48db-8277-46d04aad7251 | Pong | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | Ping | | Paris | 75009 | 1 |
+ | 2 | 5/24/2024 12:34:56 PM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Pong | | Ingolstadt | 85049 | 3 |
+
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | Ping | | Paris | 75009 | 1 |
+ | 2 | 5/24/2024 12:34:56 PM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Pong | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: UpdateBatchAsyncNoRecords
Given I don't reset the database after the scenario
@@ -51,14 +51,13 @@ Scenario: UpdateBatchAsyncNoRecords
| IsFailure | IsSuccess | Message |
| True | False | Please select some records to update! |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature
index 0b7afea..8ec8932 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/AddressServiceUpdateTests.feature
@@ -10,8 +10,8 @@ Background:
Scenario: Update01
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping Pong | | Wokingham | United Kingdom | RG41 1QW | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -22,24 +22,23 @@ Scenario: Update01
| IsFailure | IsSuccess | Message |
| False | True | |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping Pong | | Wokingham | United Kingdom | RG41 1QW | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 5/24/2024 12:34:56 PM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | Ping Pong | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 5/24/2024 12:34:56 PM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: UpdateLongAddressLine1
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:5555}} | | Wokingham | United Kingdom | RG41 1QW | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:1234}} | Paris | 75009 | 1 |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -48,26 +47,25 @@ Scenario: UpdateLongAddressLine1
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
| IsFailure | IsSuccess | Message |
- | True | False | 'Address Line1' must be between 3 and 60 characters. You entered 5555 characters. |
+ | True | False | 'Address Line2' must be between 3 and 60 characters. You entered 1234 characters. |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:5555}} | | Wokingham | United Kingdom | RG41 1QW | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:1234}} | Paris | 75009 | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
-Scenario: UpdateShortAddressLine1
+Scenario: UpdateShortAddressLine2
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:2}} | | Wokingham | United Kingdom | RG41 1QW | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:2}} | Paris | 75009 | 1 |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -79,27 +77,26 @@ Scenario: UpdateShortAddressLine1
| True | False |
And the results property 'Message' contains
| Expected |
- | 'Address Line1' must be between 3 and 60 characters. You entered 2 characters. |
+ | 'Address Line2' must be between 3 and 60 characters. You entered 2 characters. |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | {{PadRight:X:2}} | | Wokingham | United Kingdom | RG41 1QW | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | {{PadRight:X:2}} | Paris | 75009 | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: UpdateNoChange
Given I don't reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -110,25 +107,24 @@ Scenario: UpdateNoChange
| IsFailure | IsSuccess | Message |
| False | True | Record is already up to date! |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: UpdateUnknownRecord
Given I don't reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.AddressModel'
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 55555 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1234 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.AddressModel |
@@ -141,17 +137,16 @@ Scenario: UpdateUnknownRecord
| True | False | Unable to locate record to update! |
And the results property 'Value' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 55555 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- And the table 'SalesLT.Address' contains
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1234 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | Ping Pong | Paris | 75009 | 1 |
+ And the table 'Person.Address' contains
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature
index f77d7ca..c6f855e 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/AddressService/Find/AddressServiceFindTests.feature
@@ -20,15 +20,14 @@ Scenario: FindAllAsync_1_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 8 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
-
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
Scenario: FindAllAsync_1_500
@@ -43,17 +42,16 @@ Scenario: FindAllAsync_1_500
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 8 | 100 | 0 |
+ | 1 | 7 | 100 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: FindAllAsync_2_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -67,13 +65,11 @@ Scenario: FindAllAsync_2_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 8 | 5 | 1 |
-
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: FindAllAsync_2_8
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -87,9 +83,16 @@ Scenario: FindAllAsync_2_8
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 8 | 8 | 1 |
+ | 1 | 7 | 8 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: FindAllAsync_20_20
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -103,9 +106,16 @@ Scenario: FindAllAsync_20_20
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 8 | 8 | 1 |
+ | 1 | 7 | 8 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: FindAllAsync_1234_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -119,12 +129,11 @@ Scenario: FindAllAsync_1234_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 8 | 5 | 1 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: FindAllAsync_0_0
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -139,17 +148,16 @@ Scenario: FindAllAsync_0_0
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 8 | 25 | 0 |
+ | 1 | 7 | 25 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
Scenario: FindAllAsync_0_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -163,14 +171,14 @@ Scenario: FindAllAsync_0_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 8 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
Scenario: FindAllAsync_5_0
@@ -185,46 +193,46 @@ Scenario: FindAllAsync_5_0
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 8 | 25 | 0 |
+ | 1 | 7 | 25 | 0 |
And the sorted results are
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
- | 652 | 9/1/2006 12:00:00 AM | 54e20963-b0e9-41cf-ab7e-d50459a3325c | Wymbush | | Milton Keynes | United Kingdom | MK8 8DF | England |
- | 669 | 12/1/2006 12:00:00 AM | 56baec2a-5cc5-4a90-bef9-ee57e82f2e69 | Internet House, 3399 Science Park | | Cambridge | United Kingdom | CB4 4BZ | England |
- | 1034 | 9/1/2007 12:00:00 AM | 300d2a6e-67b4-417b-83a9-2026818a21c6 | Oxnard Outlet | | Oxnard | United States | 93030 | California |
- | 1038 | 9/1/2007 12:00:00 AM | a86c8140-ad7d-4caa-9b40-4006bd9998e2 | 123 Camelia Avenue | | Oxnard | United States | 93030 | California |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
- | 1092 | 9/1/2006 12:00:00 AM | 79cdd89c-3c91-48db-8277-46d04aad7251 | 99700 Bell Road | | Auburn | United States | 95603 | California |
- | 1111 | 9/1/2006 12:00:00 AM | 00000000-1111-2222-0000-000000000001 | Orphan Record | | Use In Delete Tests | United States | 95603 | California |
-
-
-Scenario: FindAsync1090
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 1 | 12/21/2013 10:09:00 AM | 2d53a7fc-8017-412d-a591-b10bac54f9b7 | 568, avenue de l? Union Centrale | | Paris | 75009 | 1 |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+ | 4 | 10/19/2012 12:00:00 AM | 70764525-a746-4f90-b7bf-dd71d6de2bc9 | Celler Weg 504 | | Poing | 66041 | 3 |
+ | 5 | 1/17/2014 12:00:00 AM | 9a804484-17af-4360-b83b-330cc89634ab | 3985 Dolores Way | | Perth | 6006 | 5 |
+ | 6 | 12/1/2013 12:00:00 AM | a9121e78-13ea-476b-bda4-6c6f654e0d55 | Skywalker House | Hoth | Sky Town | WA3 | 2 |
+ | 7 | 12/1/2013 12:00:00 AM | a9121e78-dddd-dddd-bda4-6c6f654ecd55 | Delete Orphan | | Wakanda | WA3 | 7 |
+
+
+Scenario: FindAsync2
When I call the method 'FindAsync' with the parameter values
| Key | Value | TypeName |
- | AddressId | 1090 | int |
+ | AddressId | 2 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.AddressModel |
And the result is
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 1090 | 9/1/2007 12:00:00 AM | cf3ae92a-3e66-4af0-b683-731826e89cd1 | 25130 South State Street | | Sandy | United States | 84070 | Utah |
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 2 | 8/15/2013 12:00:00 AM | df254102-23c7-4820-ae4a-6a9f0668c8ba | Charlottenstr 844 | | Ingolstadt | 85049 | 3 |
-Scenario: FindAsync12345
+Scenario: FindAsync3
When I call the method 'FindAsync' with the parameter values
| Key | Value | TypeName |
- | AddressId | 12345 | int |
-
+ | AddressId | 3 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.AddressModel |
- And the result is null
-Scenario: FindAsync640
+ And the result is
+ | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | PostalCode | StateProvinceId |
+ | 3 | 6/23/2014 12:00:00 AM | 513bf254-97b8-433b-b467-3079487a2bd4 | 9093 Gilardy Dr. | | Milton Keynes | MK8 8ZD | 4 |
+
+Scenario: FindAsync12345
When I call the method 'FindAsync' with the parameter values
| Key | Value | TypeName |
- | AddressId | 640 | int |
+ | AddressId | 12345 | int |
+
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.AddressModel |
- And the result is
- | AddressId | ModifiedDate | Rowguid | AddressLine1 | AddressLine2 | City | CountryRegion | PostalCode | StateProvince |
- | 640 | 9/1/2007 12:00:00 AM | 0e4ac5bb-be0d-4a96-a58e-064daec08e1a | 251 The Metro Center | | Wokingham | United Kingdom | RG41 1QW | England |
+ And the result is null
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature
index 4416b5b..c3aaf2c 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncSortingTests.feature
@@ -6,11 +6,11 @@ Testing the methods FindAllAsync with sorting
Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService'
-Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault
+Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description ASC |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -19,19 +19,20 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
+
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description ASC |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -40,19 +41,19 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description ASC |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -61,20 +62,20 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
-Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending
+Scenario: FindAllAsync_0_5_Description3TimesTheSameDefault
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description ASC |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -83,19 +84,19 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
+
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description ASC |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -104,19 +105,19 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description ASC |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -125,14 +126,15 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameAscending
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
+
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending
@@ -147,15 +149,15 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize | Sorting |
@@ -168,15 +170,14 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize | Sorting |
@@ -189,20 +190,20 @@ Scenario: FindAllAsync_0_5_Description3TimesTheSameDescending
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -211,14 +212,15 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -232,19 +234,19 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -253,14 +255,16 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+
+
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -274,19 +278,19 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -295,14 +299,15 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -316,19 +321,19 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Given I clear the previous results
When I update the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize | Sorting |
- | 0 | 5 | Description |
+ | PageNumber | PageSize | Sorting |
+ | 0 | 5 | Description |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -337,11 +342,13 @@ Scenario: FindAllAsync_0_5_Description7TimesAlternatingDirection
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+
+
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature
index 6f5a151..a294041 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindAllAsyncTests.feature
@@ -6,31 +6,35 @@ Testing the methods FindAllAsync
Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService'
-Scenario: FindAllAsync_0_5
+Scenario: FindAllAsync_0_0
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 0 | 5 |
+ | 0 | 0 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Paging.PagedList |
+
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 0 |
+ | 1 | 7 | 25 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
- | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
- | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
- | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: FindAllAsync_1_5
+
+Scenario: FindAllAsync_0_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 1 | 5 |
+ | 0 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -39,15 +43,15 @@ Scenario: FindAllAsync_1_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 1 |
+ | 2 | 7 | 5 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
- | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+
Scenario: FindAllAsync_0_500
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
@@ -60,52 +64,22 @@ Scenario: FindAllAsync_0_500
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 37 | 100 | 0 |
+ | 1 | 7 | 100 | 0 |
+
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
- | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
- | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
- | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
- | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. |
- | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. |
- | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. |
- | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. |
- | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. |
- | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. |
- | 1208 | 6/1/2007 12:00:00 AM | 9f436663-525d-4cc2-85ba-47d20bcea0ec | Thin, lightweight and durable with cuffs that stay up. |
- | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. |
- | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. |
- | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. |
- | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. |
- | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. |
- | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. |
- | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. |
- | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. |
- | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
-
-Scenario: FindAllAsync_1_500
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
+Scenario: FindAllAsync_1_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 1 | 500 |
+ | 1 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -114,52 +88,17 @@ Scenario: FindAllAsync_1_500
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 37 | 100 | 0 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
- | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
- | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
- | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
- | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. |
- | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. |
- | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. |
- | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. |
- | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. |
- | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. |
- | 1208 | 6/1/2007 12:00:00 AM | 9f436663-525d-4cc2-85ba-47d20bcea0ec | Thin, lightweight and durable with cuffs that stay up. |
- | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. |
- | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. |
- | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. |
- | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. |
- | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. |
- | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. |
- | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. |
- | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. |
- | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: FindAllAsync_2_5
+Scenario: FindAllAsync_1_500
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 2 | 5 |
+ | 1 | 500 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -168,19 +107,21 @@ Scenario: FindAllAsync_2_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 2 |
+ | 1 | 7 | 100 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. |
- | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. |
- | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. |
- | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. |
- | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. |
-
-Scenario: FindAllAsync_2_8
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
+Scenario: FindAllAsync_1234_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 2 | 8 |
+ | 1234 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -189,22 +130,17 @@ Scenario: FindAllAsync_2_8
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 5 | 37 | 8 | 2 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: FindAllAsync_20_20
+
+Scenario: FindAllAsync_2_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 2 | 8 |
+ | 2 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -213,22 +149,16 @@ Scenario: FindAllAsync_20_20
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 5 | 37 | 8 | 2 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: FindAllAsync_1234_5
+Scenario: FindAllAsync_2_8
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 1234 | 5 |
+ | 2 | 8 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -237,53 +167,40 @@ Scenario: FindAllAsync_1234_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 7 |
+ | 1 | 7 | 8 | 0 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: FindAllAsync_0_0
+Scenario: FindAllAsync_20_20
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 0 | 0 |
+ | 2 | 8 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Paging.PagedList |
-
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 37 | 25 | 0 |
+ | 1 | 7 | 8 | 0 |
+
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 8 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
- | 64 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
- | 128 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
- | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
- | 554 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
- | 594 | 6/1/2007 12:00:00 AM | 32b82c92-e545-4da0-a175-0be710b482fe | Travel in style and comfort. Designed for maximum comfort and safety. Wide gear range takes on all hills. High-tech aluminum alloy construction provides durability without added weight. |
- | 627 | 6/1/2007 12:00:00 AM | ebf2f0a4-89f2-4d31-be48-d8fd278f3024 | All-weather brake pads; provides superior stopping by applying more surface to the rim. |
- | 630 | 6/1/2007 12:00:00 AM | 28c4682c-38b2-4b61-a2ae-bcac7c7ce29b | Wide-link design. |
- | 647 | 6/1/2007 12:00:00 AM | 7ad9e29f-16cf-4db0-b073-cc62d501b61a | Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps. |
- | 661 | 6/1/2007 12:00:00 AM | d61c9d54-22c3-4563-a418-0b9dc7e03850 | Made from the same aluminum alloy as our top-of-the line HL frame, the ML features a lightweight down-tube milled to the perfect diameter for optimal strength. Women's version. |
- | 848 | 6/1/2007 12:00:00 AM | 03acbb19-749a-48a1-b77e-5d2a48e8dc3a | Lightweight, durable, clipless pedal with adjustable tension. |
- | 1020 | 6/1/2007 12:00:00 AM | f4c70a6b-bbe8-4774-9d75-393d3f315e9b | The LL Frame provides a safe comfortable ride, while offering superior bump absorption in a value-priced aluminum frame. |
- | 1196 | 6/1/2007 12:00:00 AM | c65bee64-4dba-47ec-91cd-31356ba379e1 | Heavy duty, abrasion-resistant shorts feature seamless, lycra inner shorts with anti-bacterial chamois for comfort. |
- | 1205 | 6/1/2007 12:00:00 AM | 58d86ede-0519-4263-a264-a2b5b01a6c7b | Short sleeve classic breathable jersey with superior moisture control, front zipper, and 3 back pockets. |
- | 1208 | 6/1/2007 12:00:00 AM | 9f436663-525d-4cc2-85ba-47d20bcea0ec | Thin, lightweight and durable with cuffs that stay up. |
- | 1210 | 6/1/2007 12:00:00 AM | 66f84b21-1a43-49d3-8883-09cdb77fffef | Traditional style with a flip-up brim; one-size fits all. |
- | 1211 | 6/1/2007 12:00:00 AM | 12f60253-f8e1-4f76-8142-6232396b8f17 | Unisex long-sleeve AWC logo microfiber cycling jersey |
- | 1487 | 6/1/2007 12:00:00 AM | 5c1dab3a-4b31-4d9d-a14f-3cb61949b79b | Adapt� � tous les usages, sur route ou tout-terrain. Pour toutes les bourses. Changement de braquet en douceur et conduite confortable. |
- | 1488 | 6/1/2007 12:00:00 AM | 79065ec8-2080-4120-a4ea-bfa7ea1f1f9d | Ce v�lo offre un excellent rapport qualit�-prix. Vif et facile � man�uvrer, il se conduit en toute tranquillit� sur les chemins et les sentiers. |
- | 1490 | 3/11/2008 10:32:17.973 AM | 2b6fa2a7-4815-47b6-a6bc-d6aec23b85cc | Conduite sur terrains tr�s accident�s. Id�al pour tous les niveaux de comp�tition. Utilise le m�me cadre HL que le Montain-100. |
- | 1493 | 6/1/2007 12:00:00 AM | 7943455f-3fbe-44c0-9ac2-7ee642d3944b | V�lo d'adulte d'entr�e de gamme�; permet une conduite confortable en ville ou sur les chemins de campagne. Moyeux et rayons � blocage rapide. |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Scenario: FindAllAsync_7_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -297,12 +214,12 @@ Scenario: FindAllAsync_7_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 7 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
Scenario: FindAllAsync_8_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
@@ -315,12 +232,12 @@ Scenario: FindAllAsync_8_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 8 | 37 | 5 | 7 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
Scenario: FindAllAsync_5_0
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
@@ -333,20 +250,16 @@ Scenario: FindAllAsync_5_0
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 37 | 25 | 1 |
+ | 1 | 7 | 25 | 0 |
+
And the sorted results are
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. |
- | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. |
- | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. |
- | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. |
- | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. |
- | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. |
- | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. |
- | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. |
- | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature
index e7bd3c8..5cb8efc 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/Find/ProductDescriptionServiceFindTests.feature
@@ -17,24 +17,25 @@ Scenario: FindAsync1234
| AdventureWorksDemo.Data.Models.ProductDescriptionModel |
And the result is null
-Scenario: FindAsync209
+Scenario: FindAsync3
When I call the method 'FindAsync' with the parameter values
| Key | Value | TypeName |
- | ProductDescriptionId | 209 | int |
+ | ProductDescriptionId | 3 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.ProductDescriptionModel |
And the result is
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 209 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
-
-Scenario: FindAsync513
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+
+Scenario: FindAsync555
When I call the method 'FindAsync' with the parameter values
| Key | Value | TypeName |
- | ProductDescriptionId | 513 | int |
+ | ProductDescriptionId | 555 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.ProductDescriptionModel |
And the result is
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 513 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
\ No newline at end of file
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature
index 516bfe1..691db2a 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceAddTests.feature
@@ -26,12 +26,12 @@ Scenario: AddAsync
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
| 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | PingPong |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
- | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | PingPong |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 | PingPong |
@@ -55,11 +55,11 @@ Scenario: AddAsyncShortName
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
| 0 | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | XX |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Scenario: AddAsyncLongName
@@ -81,11 +81,11 @@ Scenario: AddAsyncLongName
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
| 0 | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 | {{PadRight:X:401}} |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Scenario: AddBatchAsync
@@ -114,16 +114,16 @@ Scenario: AddBatchAsync
| 5004 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Cow |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | How |
- | 5002 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | Now |
- | 5003 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | Brown |
- | 5004 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Cow |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+ | 5001 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 | How |
+ | 5002 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 | Now |
+ | 5003 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 | Brown |
+ | 5004 | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 | Cow |
+
Scenario: AddBatchAsync2ShortName
Given I reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
@@ -153,11 +153,11 @@ Scenario: AddBatchAsync2ShortName
| 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 | Brown |
| 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 | It |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
Scenario: AddBatchAsync2LongName
Given I reset the database after the scenario
@@ -186,8 +186,8 @@ Scenario: AddBatchAsync2LongName
| 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 | {{PadRight:X:1234}} |
| 0 | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 | Les Contamines |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1598' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 4' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature
index 6cec5c0..d4ce750 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceDeleteTests.feature
@@ -6,10 +6,10 @@ Testing the methods DeleteAsync
Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService'
- And I don't reset the database after the scenario
-
-Scenario: DeleteAsync12345
+ And I reset the database after the scenario
+Scenario: DeleteAsync1234
+ Given I don't reset the database after the scenario
When I call the method 'DeleteAsync' with the parameter values
| Key | Value | TypeName | ModifiedDate |
| ProductDescriptionId | 12345 | int | 21 Apr 2024 12:34:56 |
@@ -18,94 +18,37 @@ Scenario: DeleteAsync12345
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
| IsFailure | IsSuccess | Message |
- | True | False | Unable to find record to delete! |
- And the result is of type 'System.Boolean' with the value
- | Expected |
- | False |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1500' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. |
- | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. |
- | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. |
- | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. |
- | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. |
- | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. |
- | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. |
- | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. |
- | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
-
-
+ | True | False | Unable to find record to delete! |
-Scenario: DeleteAsync1504
+ Then the table 'Production.ProductDescription' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
+Scenario: DeleteAsync777
Given I reset the database after the scenario
- When I call the method 'DeleteAsync' with the parameter values
- | Key | Value | TypeName |
- | ProductDescriptionId | 1504 | int |
- Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ServiceResult |
- And the result is
- | IsFailure | IsSuccess | Message |
- | True | False | Unable to delete, record is referenced elsewhere! |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | False |
- Then the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1500' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. |
- | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. |
- | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. |
- | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. |
- | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. |
- | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. |
- | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. |
- | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. |
- | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
-
-
-Scenario: DeleteAsync1600
- Given I reset the database after the scenario
When I call the method 'DeleteAsync' with the parameter values
| Key | Value | TypeName |
- | ProductDescriptionId | 1600 | int |
+ | ProductDescriptionId | 777 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
| IsFailure | IsSuccess | Message |
| False | True | |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | True |
- Then the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1500' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1502 | 6/1/2007 12:00:00 AM | e5288050-bc5b-45cc-8849-c7d4af2fe2b6 | V�lo de qualit� pour tous usages, dot� d'un bon niveau de confort et de s�curit�. Pr�sente des pneus plus larges et plus stables pour les sorties en ville ou les randonn�es du week-end. |
- | 1503 | 6/1/2007 12:00:00 AM | 28b132c3-108c-412d-9918-a8c9297dfb73 | La selle rembourr�e offre un confort optimal. Le porte-bagages nouvellement remani� offre diverses possibilit�s d'ajout de paniers ou de sacoches. Ce v�lo reste parfaitement stable une fois charg�. |
- | 1504 | 6/1/2007 12:00:00 AM | e3bac4a6-220c-4e5e-8261-51e08906c0e8 | Voyagez confortablement et avec �l�gance. Confort et s�curit� maximum. Large �ventail de vitesses pour gravir toutes les c�tes. Sa fabrication en alliage d'aluminium haute technologie est synonyme de robustesse, sans ajout de poids. |
- | 1509 | 6/1/2007 12:00:00 AM | 5ed8186a-6049-42b1-b1b0-3b1f899c538b | Patins de freinage pour tous les temps�; freinage renforc� par l'application d'une plus grande surface sur la jante. |
- | 1510 | 6/1/2007 12:00:00 AM | 64723c0c-09d5-497d-83a3-4561818a8f1c | Conception liaison large. |
- | 1517 | 6/1/2007 12:00:00 AM | f3cd990a-b70d-43c8-a075-934a3e98b5aa | Dot� du m�me alliage en aluminium que notre cadre HL haut de gamme, le ML poss�de un tube l�ger dont le diam�tre est pr�vu pour offrir une r�sistance optimale. Version femmes. |
- | 1537 | 6/1/2007 12:00:00 AM | 6a60e7f6-a5cd-4e7b-8612-9340e46bf66d | P�dales automatiques l�g�res et robustes avec tension r�glable. |
- | 1571 | 6/1/2007 12:00:00 AM | e95e1259-b822-40ee-aa86-7de9f9e0f0ea | Le cadre LL en aluminium offre une conduite confortable, une excellente absorption des bosses pour un tr�s bon rapport qualit�-prix. |
- | 1587 | 6/1/2007 12:00:00 AM | e11a3c2a-b074-48f9-8226-16d65c2f91c2 | Cuissards r�sistants � l'usure pour utilisation intensive, doubl�s � l'int�rieur en Spandex, sans couture, peau de chamois anti-bact�rie pour un meilleur confort. |
- | 1594 | 6/1/2007 12:00:00 AM | fb2a5474-9d83-4a9b-bbbd-8ffc9036866e | Maillot manches courtes classique et anti-transpiration avec contr�le de l'humidit�, fermeture avant � glissi�re et 3�poches arri�re. |
- | 1596 | 6/1/2007 12:00:00 AM | 31d4905c-d37c-4128-bcff-4a35da9c1bb7 | Fin, l�ger et r�sistant avec des poignets qui restent en place. |
- | 1598 | 6/1/2007 12:00:00 AM | fb627d1b-2933-4fbe-a6a4-bf69f2814ec2 | Style classique avec une visi�re relevable�; taille unique. |
- | 1599 | 6/1/2007 12:00:00 AM | 4aae6d4f-8320-4f32-99de-bb3b1b13f1ef | Maillot de cycliste en microfibre avec le logo de l'�quipe AWV, manches longues, unisexe. |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ Then the table 'Production.ProductDescription' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 1 | 6/1/2007 12:00:00 AM | 8e6746e5-ad97-46e2-bd24-fcea075c3b52 | Suitable for any type of riding, on or off-road. Fits any budget. Smooth-shifting with a comfortable ride. |
+ | 2 | 6/1/2007 12:00:00 AM | 7b1c4e90-85e2-4792-b47b-e0c424e2ec94 | This bike delivers a high-level of performance on a budget. It is responsive and maneuverable, and offers peace-of-mind when you decide to go off-road. |
+ | 3 | 3/11/2008 10:32:17.973 AM | 130709e6-8512-49b9-9f62-1f5c99152056 | Serious back-country riding. Perfect for all levels of competition. Uses the same HL Frame as the Mountain-100. |
+ | 4 | 6/1/2007 12:00:00 AM | f5ff5ffd-cb7c-4ad6-bbc9-4d250bb6e98d | Entry level adult bike]; offers a comfortable ride cross-country or down the block. Quick-release hubs and rims. |
+ | 555 | 6/1/2007 12:00:00 AM | 741eae59-5e59-4dbc-9086-2633392c2582 | All-occasion value bike with our basic comfort and safety features. Offers wider, more stable tires for a ride around town or weekend trip. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature
index 8de3367..c8ef17f 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateBatchTests.feature
@@ -8,15 +8,15 @@ Background:
And I reset the database after the scenario
Scenario: UpdateBatchAsync01
- Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
| ProductDescriptionId | Description |
- | 1600 | Ping Pong |
- | 1605 | {{Pad:X:123}} |
+ | 666 | Ping Pong |
+ | 777 | {{Pad:X:123}} |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| models | {{models}} | IEnumerable |
@@ -28,13 +28,13 @@ Scenario: UpdateBatchAsync01
| False | True | |
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 5/24/2024 12:34:56 PM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Ping Pong |
- | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} |
+ | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong |
+ | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 5/24/2024 12:34:56 PM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Ping Pong |
- | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong |
+ | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:X:123}} |
Scenario: UpdateBatchAsynNoRecords
Given I don't reset the database after the scenario
@@ -51,15 +51,13 @@ Scenario: UpdateBatchAsynNoRecords
| True | False | Please select some records to update! |
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
-
-
Scenario: UpdateBatchAsyncOneBadRecord
Given I don't reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
| ProductDescriptionId | Description |
- | 1599 | {{Pad:X:123}} |
- | 1600 | A |
+ | 666 | {{Pad:X:123}} |
+ | 777 | A |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| models | {{models}} | IEnumerable |
@@ -71,11 +69,10 @@ Scenario: UpdateBatchAsyncOneBadRecord
| True | False | 'Description' must be between 3 and 400 characters. You entered 1 characters. |
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1599 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | {{Pad:X:123}} |
- | 1600 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | A |
-
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | 666 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | {{Pad:X:123}} |
+ | 777 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | A |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature
index 45a62f9..ae8a3eb 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProduceDescriptionService/ProductDescriptionServiceUpdateTests.feature
@@ -8,15 +8,14 @@ Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IProductDescriptionService'
And I reset the database after the scenario
-Scenario: Update01
- Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+Scenario: Update666
+ Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
| ProductDescriptionId | Description |
- | 1605 | Ping Pong |
+ | 666 | Ping Pong |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel |
@@ -28,23 +27,23 @@ Scenario: Update01
| False | True | |
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Ping Pong |
+ | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Ping Pong |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555 ' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 5/24/2024 12:34:56 PM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Ping Pong |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: UpdateShortName
- Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+Scenario: Update666ShortName
+ Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
| ProductDescriptionId | Description |
- | 1600 | Hi |
+ | 666 | Hi |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel |
@@ -59,21 +58,20 @@ Scenario: UpdateShortName
| 'Description' must be between 3 and 400 characters. You entered 2 characters. |
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Hi |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | Hi |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
-Scenario: UpdateLongName
- Given the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
-
+Scenario: Update777LongName
+ Given the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
| ProductDescriptionId | Description |
- | 1600 | {{Pad:x:401}} |
+ | 777 | {{Pad:x:401}} |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel |
@@ -83,20 +81,20 @@ Scenario: UpdateLongName
And the result is
| IsFailure | IsSuccess | Message |
| True | False | 'Description' must be between 3 and 400 characters. You entered 401 characters. |
-
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | {{Pad:x:401}} |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | {{Pad:x:401}} |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
+
-Scenario: UpdateNoChange
+Scenario: Update777NoChange
Given I don't reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.ProductDescriptionModel'
| ProductDescriptionId | Description |
- | 1600 | Orphan record to deletion test |
+ | 777 | Orphan record to deletion test |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductDescriptionModel |
@@ -104,16 +102,15 @@ Scenario: UpdateNoChange
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
- | IsFailure | IsSuccess | Message |
- | False | True | Record is already up to date! |
+ | IsFailure | IsSuccess | Message |
+ | False | True | |
And the results property 'Value' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
-
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Orphan record to deletion test |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 5/24/2024 12:34:56 PM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Orphan record to deletion test |
Scenario: UpdateUnknownRecord
Given I don't reset the database after the scenario
@@ -134,7 +131,7 @@ Scenario: UpdateUnknownRecord
And the results property 'Value' contains
| ProductDescriptionId | ModifiedDate | Rowguid | Description |
| 1234 | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 | UpdateUnknownRecord |
- And the table 'SalesLT.ProductDescription' filtered by 'ProductDescriptionId > 1599' contains
- | ProductDescriptionId | ModifiedDate | Rowguid | Description |
- | 1600 | 6/1/2020 12:00:00 AM | 4aae6d4f-1111-4f32-99de-bb3b1b13f1ef | Orphan record to deletion test |
- | 1605 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | Chaque cadre est fabriqu� artisanalement dans notre atelier de Bordeaux afin d'obtenir le diam�tre et l'�paisseur adapt�s � un v�lo tout-terrain de premier choix. Le cadre en aluminium soud� � chaud pr�sente un tube d'un plus grand diam�tre, afin d'absorber les bosses. |
+ And the table 'Production.ProductDescription' filtered by 'ProductDescriptionId > 555' contains
+ | ProductDescriptionId | ModifiedDate | Rowguid | Description |
+ | 666 | 6/1/2007 12:00:00 AM | ddc955b2-843e-49ce-8f7b-54870f6135eb | The plush custom saddle keeps you riding all day, and there's plenty of space to add panniers and bike bags to the newly-redesigned carrier. This bike has stability when fully-loaded. |
+ | 777 | 6/1/2007 12:00:00 AM | 9cfed570-180a-44ea-8233-55116a0ddcb9 | For Delete Tests Only |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature
index 53b4391..2023e20 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature
@@ -8,35 +8,11 @@ Testing the methods AddAsync
Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IProductCategoryService'
And I don't reset the database after the scenario
-
-Scenario: AddAsyncNoParent
- Given I reset the database after the scenario
- When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | Name | ParentProductCategoryId | Rowguid |
- | PingPong | | 00000000-1111-0000-0000-000000000002 |
- And I call the method 'AddAsync' with the parameter values
- | Key | Value | TypeName |
- | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
- Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ServiceResult |
- And the result is
- | IsFailure | IsSuccess | Message |
- | False | True | |
- And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 5001 | | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
- | 5001 | | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 |
-
-Scenario: AddAsyncNoParentShortName
- Given I reset the database after the scenario
+
+Scenario: AddAsyncShortName
When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | Name | ParentProductCategoryId | Rowguid |
- | Hi | | 00000000-1111-0000-0000-000000000002 |
+ | Name | Rowguid |
+ | Hi | 00000000-1111-0000-0000-000000000002 |
And I call the method 'AddAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
@@ -48,19 +24,19 @@ Scenario: AddAsyncNoParentShortName
| True | False | 'Name' must be between 3 and 50 characters. You entered 2 characters. |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 0 | | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 0 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: AddAsyncParent
+Scenario: AddAsync
Given I reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | Name | ParentProductCategoryId | Rowguid |
- | PingPong | 42 | 00000000-1111-0000-0000-000000000002 |
+ | Name | Rowguid |
+ | PingPong | 00000000-1111-0000-0000-000000000002 |
And I call the method 'AddAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
@@ -71,45 +47,22 @@ Scenario: AddAsyncParent
| IsFailure | IsSuccess | Message |
| False | True | |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 5001 | 42 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
- | 5001 | 42 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 |
-
-Scenario: AddAsyncParentShortName
- Given I reset the database after the scenario
- When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | Name | ParentProductCategoryId | Rowguid |
- | Hi | 42 | 00000000-1111-0000-0000-000000000002 |
- And I call the method 'AddAsync' with the parameter values
- | Key | Value | TypeName |
- | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
- Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ServiceResult |
- And the result is
- | IsFailure | IsSuccess | Message |
- | True | False | 'Name' must be between 3 and 50 characters. You entered 2 characters. |
-
- And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 0 | 42 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-0000-0000-000000000002 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 5001 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+ | 5001 | PingPong | 5/24/2024 12:34:56 PM | 00000000-1111-0000-0000-000000000002 |
Scenario: AddBatchAsync
Given I reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | Name | ParentProductCategoryId | Rowguid |
- | How | 4 | 00000000-1111-1111-0000-000000000001 |
- | Now | 5 | 00000000-1111-1111-0000-000000000002 |
- | Brown | 41 | 00000000-1111-1111-0000-000000000003 |
- | Cow | | 00000000-1111-1111-0000-000000000004 |
+ | Name | Rowguid |
+ | How | 00000000-1111-1111-0000-000000000001 |
+ | Now | 00000000-1111-1111-0000-000000000002 |
+ | Brown | 00000000-1111-1111-0000-000000000003 |
+ | Cow | 00000000-1111-1111-0000-000000000004 |
And I call the method 'AddBatchAsync' with the parameter values
| Key | Value | TypeName |
| model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable |
@@ -121,29 +74,28 @@ Scenario: AddBatchAsync
| false | true | |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 5001 | 4 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 |
- | 5002 | 5 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 |
- | 5003 | 41 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 |
- | 5004 | | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 5001 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 |
+ | 5002 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 |
+ | 5003 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 |
+ | 5004 | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
- | 5001 | 4 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 |
- | 5002 | 5 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 |
- | 5003 | 41 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 |
- | 5004 | | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+ | 5001 | How | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000001 |
+ | 5002 | Now | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000002 |
+ | 5003 | Brown | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000003 |
+ | 5004 | Cow | 5/24/2024 12:34:56 PM | 00000000-1111-1111-0000-000000000004 |
Scenario: AddBatchAsync2ShortName
- Given I reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | Name | ParentProductCategoryId | Rowguid |
- | Hi | 4 | 00000000-1111-1111-0000-000000000001 |
- | Now | 5 | 00000000-1111-1111-0000-000000000002 |
- | Brown | 41 | 00000000-1111-1111-0000-000000000003 |
- | It | | 00000000-1111-1111-0000-000000000004 |
+ | Name | Rowguid |
+ | Hi | 00000000-1111-1111-0000-000000000001 |
+ | Now | 00000000-1111-1111-0000-000000000002 |
+ | Brown | 00000000-1111-1111-0000-000000000003 |
+ | It | 00000000-1111-1111-0000-000000000004 |
And I call the method 'AddBatchAsync' with the parameter values
| Key | Value | TypeName |
| model | {{ListOfObjects}} | System.Collections.Generic.IEnumerable |
@@ -158,13 +110,13 @@ Scenario: AddBatchAsync2ShortName
| 'Name' must be between 3 and 50 characters. You entered 2 characters. |
| 'Name' must be between 3 and 50 characters. You entered 2 characters. |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 0 | 4 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000001 |
- | 0 | 5 | Now | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000002 |
- | 0 | 41 | Brown | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 |
- | 0 | | It | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 0 | Hi | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000001 |
+ | 0 | Now | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000002 |
+ | 0 | Brown | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000003 |
+ | 0 | It | 1/1/0001 12:00:00 AM | 00000000-1111-1111-0000-000000000004 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs
index b3c7c6f..8476ddc 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceAddTests.feature.cs
@@ -108,13 +108,13 @@ await testRunner.GivenAsync("The service to test is \'AdventureWorksDemo.Data.Se
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncNoParent")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncShortName")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")]
- public async System.Threading.Tasks.Task AddAsyncNoParent()
+ public async System.Threading.Tasks.Task AddAsyncShortName()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncNoParent", null, tagsOfScenario, argumentsOfScenario, featureTags);
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncShortName", null, tagsOfScenario, argumentsOfScenario, featureTags);
#line 12
this.ScenarioInitialize(scenarioInfo);
#line hidden
@@ -128,212 +128,90 @@ public async System.Threading.Tasks.Task AddAsyncNoParent()
#line 8
await this.FeatureBackgroundAsync();
#line hidden
-#line 13
- await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
-#line hidden
- global::Reqnroll.Table table403 = new global::Reqnroll.Table(new string[] {
- "Name",
- "ParentProductCategoryId",
- "Rowguid"});
- table403.AddRow(new string[] {
- "PingPong",
- "",
- "00000000-1111-0000-0000-000000000002"});
-#line 14
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table403, "When ");
-#line hidden
- global::Reqnroll.Table table404 = new global::Reqnroll.Table(new string[] {
- "Key",
- "Value",
- "TypeName"});
- table404.AddRow(new string[] {
- "model",
- "{{model}}",
- "AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 17
- await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table404, "And ");
-#line hidden
- global::Reqnroll.Table table405 = new global::Reqnroll.Table(new string[] {
- "Expected"});
- table405.AddRow(new string[] {
- "AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 20
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table405, "Then ");
-#line hidden
- global::Reqnroll.Table table406 = new global::Reqnroll.Table(new string[] {
- "IsFailure",
- "IsSuccess",
- "Message"});
- table406.AddRow(new string[] {
- "False",
- "True",
- ""});
-#line 23
- await testRunner.AndAsync("the result is", ((string)(null)), table406, "And ");
-#line hidden
- global::Reqnroll.Table table407 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table407.AddRow(new string[] {
- "5001",
- "",
- "PingPong",
- "5/24/2024 12:34:56 PM",
- "00000000-1111-0000-0000-000000000002"});
-#line 26
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table407, "And ");
-#line hidden
- global::Reqnroll.Table table408 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
+ global::Reqnroll.Table table397 = new global::Reqnroll.Table(new string[] {
"Name",
- "ModifiedDate",
"Rowguid"});
- table408.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table408.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
- table408.AddRow(new string[] {
- "5001",
- "",
- "PingPong",
- "5/24/2024 12:34:56 PM",
- "00000000-1111-0000-0000-000000000002"});
-#line 29
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table408, "And ");
-#line hidden
- }
- await this.ScenarioCleanupAsync();
- }
-
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncNoParentShortName")]
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")]
- public async System.Threading.Tasks.Task AddAsyncNoParentShortName()
- {
- string[] tagsOfScenario = ((string[])(null));
- System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncNoParentShortName", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 35
-this.ScenarioInitialize(scenarioInfo);
-#line hidden
- if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
- {
- testRunner.SkipScenario();
- }
- else
- {
- await this.ScenarioStartAsync();
-#line 8
-await this.FeatureBackgroundAsync();
-#line hidden
-#line 36
- await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
-#line hidden
- global::Reqnroll.Table table409 = new global::Reqnroll.Table(new string[] {
- "Name",
- "ParentProductCategoryId",
- "Rowguid"});
- table409.AddRow(new string[] {
+ table397.AddRow(new string[] {
"Hi",
- "",
"00000000-1111-0000-0000-000000000002"});
-#line 37
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table409, "When ");
+#line 13
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table397, "When ");
#line hidden
- global::Reqnroll.Table table410 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table398 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table410.AddRow(new string[] {
+ table398.AddRow(new string[] {
"model",
"{{model}}",
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 40
- await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table410, "And ");
+#line 16
+ await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table398, "And ");
#line hidden
- global::Reqnroll.Table table411 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table399 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table411.AddRow(new string[] {
+ table399.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 43
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table411, "Then ");
+#line 19
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table399, "Then ");
#line hidden
- global::Reqnroll.Table table412 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table400 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table412.AddRow(new string[] {
+ table400.AddRow(new string[] {
"True",
"False",
"\'Name\' must be between 3 and 50 characters. You entered 2 characters."});
-#line 46
- await testRunner.AndAsync("the result is", ((string)(null)), table412, "And ");
+#line 22
+ await testRunner.AndAsync("the result is", ((string)(null)), table400, "And ");
#line hidden
- global::Reqnroll.Table table413 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table401 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table413.AddRow(new string[] {
+ table401.AddRow(new string[] {
"0",
- "",
"Hi",
"1/1/0001 12:00:00 AM",
"00000000-1111-0000-0000-000000000002"});
-#line 50
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table413, "And ");
+#line 26
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table401, "And ");
#line hidden
- global::Reqnroll.Table table414 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table402 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table414.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table402.AddRow(new string[] {
+ "6",
+ "Road Bikes",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table414.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 54
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table414, "And ");
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table402.AddRow(new string[] {
+ "7",
+ "For Delete Tests Only",
+ "6/1/2002 12:00:00 AM",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 30
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table402, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncParent")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsync")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")]
- public async System.Threading.Tasks.Task AddAsyncParent()
+ public async System.Threading.Tasks.Task AddAsync()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncParent", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 59
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsync", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 35
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -346,198 +224,84 @@ public async System.Threading.Tasks.Task AddAsyncParent()
#line 8
await this.FeatureBackgroundAsync();
#line hidden
-#line 60
+#line 36
await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table415 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table403 = new global::Reqnroll.Table(new string[] {
"Name",
- "ParentProductCategoryId",
"Rowguid"});
- table415.AddRow(new string[] {
+ table403.AddRow(new string[] {
"PingPong",
- "42",
"00000000-1111-0000-0000-000000000002"});
-#line 61
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table415, "When ");
+#line 37
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table403, "When ");
#line hidden
- global::Reqnroll.Table table416 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table404 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table416.AddRow(new string[] {
+ table404.AddRow(new string[] {
"model",
"{{model}}",
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 64
- await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table416, "And ");
+#line 40
+ await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table404, "And ");
#line hidden
- global::Reqnroll.Table table417 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table405 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table417.AddRow(new string[] {
+ table405.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 67
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table417, "Then ");
+#line 43
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table405, "Then ");
#line hidden
- global::Reqnroll.Table table418 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table406 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table418.AddRow(new string[] {
+ table406.AddRow(new string[] {
"False",
"True",
""});
-#line 70
- await testRunner.AndAsync("the result is", ((string)(null)), table418, "And ");
+#line 46
+ await testRunner.AndAsync("the result is", ((string)(null)), table406, "And ");
#line hidden
- global::Reqnroll.Table table419 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table407 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table419.AddRow(new string[] {
+ table407.AddRow(new string[] {
"5001",
- "42",
"PingPong",
"5/24/2024 12:34:56 PM",
"00000000-1111-0000-0000-000000000002"});
-#line 73
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table419, "And ");
+#line 49
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table407, "And ");
#line hidden
- global::Reqnroll.Table table420 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table408 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table420.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table408.AddRow(new string[] {
+ "6",
+ "Road Bikes",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table420.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
- table420.AddRow(new string[] {
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table408.AddRow(new string[] {
+ "7",
+ "For Delete Tests Only",
+ "6/1/2002 12:00:00 AM",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+ table408.AddRow(new string[] {
"5001",
- "42",
"PingPong",
"5/24/2024 12:34:56 PM",
"00000000-1111-0000-0000-000000000002"});
-#line 76
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table420, "And ");
-#line hidden
- }
- await this.ScenarioCleanupAsync();
- }
-
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("AddAsyncParentShortName")]
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceAddTests")]
- public async System.Threading.Tasks.Task AddAsyncParentShortName()
- {
- string[] tagsOfScenario = ((string[])(null));
- System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddAsyncParentShortName", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 82
-this.ScenarioInitialize(scenarioInfo);
-#line hidden
- if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
- {
- testRunner.SkipScenario();
- }
- else
- {
- await this.ScenarioStartAsync();
-#line 8
-await this.FeatureBackgroundAsync();
-#line hidden
-#line 83
- await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
-#line hidden
- global::Reqnroll.Table table421 = new global::Reqnroll.Table(new string[] {
- "Name",
- "ParentProductCategoryId",
- "Rowguid"});
- table421.AddRow(new string[] {
- "Hi",
- "42",
- "00000000-1111-0000-0000-000000000002"});
-#line 84
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table421, "When ");
-#line hidden
- global::Reqnroll.Table table422 = new global::Reqnroll.Table(new string[] {
- "Key",
- "Value",
- "TypeName"});
- table422.AddRow(new string[] {
- "model",
- "{{model}}",
- "AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 87
- await testRunner.AndAsync("I call the method \'AddAsync\' with the parameter values", ((string)(null)), table422, "And ");
-#line hidden
- global::Reqnroll.Table table423 = new global::Reqnroll.Table(new string[] {
- "Expected"});
- table423.AddRow(new string[] {
- "AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 90
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table423, "Then ");
-#line hidden
- global::Reqnroll.Table table424 = new global::Reqnroll.Table(new string[] {
- "IsFailure",
- "IsSuccess",
- "Message"});
- table424.AddRow(new string[] {
- "True",
- "False",
- "\'Name\' must be between 3 and 50 characters. You entered 2 characters."});
-#line 93
- await testRunner.AndAsync("the result is", ((string)(null)), table424, "And ");
-#line hidden
- global::Reqnroll.Table table425 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table425.AddRow(new string[] {
- "0",
- "42",
- "Hi",
- "1/1/0001 12:00:00 AM",
- "00000000-1111-0000-0000-000000000002"});
-#line 97
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table425, "And ");
-#line hidden
- global::Reqnroll.Table table426 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table426.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table426.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 100
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table426, "And ");
+#line 52
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table408, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -551,7 +315,7 @@ public async System.Threading.Tasks.Task AddBatchAsync()
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddBatchAsync", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 105
+#line 58
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -564,142 +328,125 @@ public async System.Threading.Tasks.Task AddBatchAsync()
#line 8
await this.FeatureBackgroundAsync();
#line hidden
-#line 106
+#line 59
await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table427 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table409 = new global::Reqnroll.Table(new string[] {
"Name",
- "ParentProductCategoryId",
"Rowguid"});
- table427.AddRow(new string[] {
+ table409.AddRow(new string[] {
"How",
- "4",
"00000000-1111-1111-0000-000000000001"});
- table427.AddRow(new string[] {
+ table409.AddRow(new string[] {
"Now",
- "5",
"00000000-1111-1111-0000-000000000002"});
- table427.AddRow(new string[] {
+ table409.AddRow(new string[] {
"Brown",
- "41",
"00000000-1111-1111-0000-000000000003"});
- table427.AddRow(new string[] {
+ table409.AddRow(new string[] {
"Cow",
- "",
"00000000-1111-1111-0000-000000000004"});
-#line 107
+#line 60
await testRunner.WhenAsync("I populate a list of the model \'AdventureWorksDemo.Data.Models.ProductCategoryMod" +
- "el\'", ((string)(null)), table427, "When ");
+ "el\'", ((string)(null)), table409, "When ");
#line hidden
- global::Reqnroll.Table table428 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table410 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table428.AddRow(new string[] {
+ table410.AddRow(new string[] {
"model",
"{{ListOfObjects}}",
"System.Collections.Generic.IEnumerable"});
-#line 113
- await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table428, "And ");
+#line 66
+ await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table410, "And ");
#line hidden
- global::Reqnroll.Table table429 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table411 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table429.AddRow(new string[] {
+ table411.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 116
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table429, "Then ");
+#line 69
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table411, "Then ");
#line hidden
- global::Reqnroll.Table table430 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table412 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table430.AddRow(new string[] {
+ table412.AddRow(new string[] {
"false",
"true",
""});
-#line 119
- await testRunner.AndAsync("the result is", ((string)(null)), table430, "And ");
+#line 72
+ await testRunner.AndAsync("the result is", ((string)(null)), table412, "And ");
#line hidden
- global::Reqnroll.Table table431 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table413 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table431.AddRow(new string[] {
+ table413.AddRow(new string[] {
"5001",
- "4",
"How",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000001"});
- table431.AddRow(new string[] {
+ table413.AddRow(new string[] {
"5002",
- "5",
"Now",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000002"});
- table431.AddRow(new string[] {
+ table413.AddRow(new string[] {
"5003",
- "41",
"Brown",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000003"});
- table431.AddRow(new string[] {
+ table413.AddRow(new string[] {
"5004",
- "",
"Cow",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000004"});
-#line 123
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table431, "And ");
+#line 76
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table413, "And ");
#line hidden
- global::Reqnroll.Table table432 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table414 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table432.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table414.AddRow(new string[] {
+ "6",
+ "Road Bikes",
+ "6/1/2002 12:00:00 AM",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table414.AddRow(new string[] {
+ "7",
+ "For Delete Tests Only",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table432.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
- table432.AddRow(new string[] {
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+ table414.AddRow(new string[] {
"5001",
- "4",
"How",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000001"});
- table432.AddRow(new string[] {
+ table414.AddRow(new string[] {
"5002",
- "5",
"Now",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000002"});
- table432.AddRow(new string[] {
+ table414.AddRow(new string[] {
"5003",
- "41",
"Brown",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000003"});
- table432.AddRow(new string[] {
+ table414.AddRow(new string[] {
"5004",
- "",
"Cow",
"5/24/2024 12:34:56 PM",
"00000000-1111-1111-0000-000000000004"});
-#line 130
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table432, "And ");
+#line 83
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table414, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -713,7 +460,7 @@ public async System.Threading.Tasks.Task AddBatchAsync2ShortName()
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("AddBatchAsync2ShortName", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 139
+#line 92
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -726,125 +473,109 @@ public async System.Threading.Tasks.Task AddBatchAsync2ShortName()
#line 8
await this.FeatureBackgroundAsync();
#line hidden
-#line 140
- await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
-#line hidden
- global::Reqnroll.Table table433 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table415 = new global::Reqnroll.Table(new string[] {
"Name",
- "ParentProductCategoryId",
"Rowguid"});
- table433.AddRow(new string[] {
+ table415.AddRow(new string[] {
"Hi",
- "4",
"00000000-1111-1111-0000-000000000001"});
- table433.AddRow(new string[] {
+ table415.AddRow(new string[] {
"Now",
- "5",
"00000000-1111-1111-0000-000000000002"});
- table433.AddRow(new string[] {
+ table415.AddRow(new string[] {
"Brown",
- "41",
"00000000-1111-1111-0000-000000000003"});
- table433.AddRow(new string[] {
+ table415.AddRow(new string[] {
"It",
- "",
"00000000-1111-1111-0000-000000000004"});
-#line 141
+#line 93
await testRunner.WhenAsync("I populate a list of the model \'AdventureWorksDemo.Data.Models.ProductCategoryMod" +
- "el\'", ((string)(null)), table433, "When ");
+ "el\'", ((string)(null)), table415, "When ");
#line hidden
- global::Reqnroll.Table table434 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table416 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table434.AddRow(new string[] {
+ table416.AddRow(new string[] {
"model",
"{{ListOfObjects}}",
"System.Collections.Generic.IEnumerable"});
-#line 147
- await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table434, "And ");
+#line 99
+ await testRunner.AndAsync("I call the method \'AddBatchAsync\' with the parameter values", ((string)(null)), table416, "And ");
#line hidden
- global::Reqnroll.Table table435 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table417 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table435.AddRow(new string[] {
+ table417.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 150
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table435, "Then ");
+#line 102
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table417, "Then ");
#line hidden
- global::Reqnroll.Table table436 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table418 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess"});
- table436.AddRow(new string[] {
+ table418.AddRow(new string[] {
"True",
"False"});
-#line 153
- await testRunner.AndAsync("the result is", ((string)(null)), table436, "And ");
+#line 105
+ await testRunner.AndAsync("the result is", ((string)(null)), table418, "And ");
#line hidden
- global::Reqnroll.Table table437 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table419 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table437.AddRow(new string[] {
+ table419.AddRow(new string[] {
"\'Name\' must be between 3 and 50 characters. You entered 2 characters."});
- table437.AddRow(new string[] {
+ table419.AddRow(new string[] {
"\'Name\' must be between 3 and 50 characters. You entered 2 characters."});
-#line 156
- await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table437, "And ");
+#line 108
+ await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table419, "And ");
#line hidden
- global::Reqnroll.Table table438 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table420 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table438.AddRow(new string[] {
+ table420.AddRow(new string[] {
"0",
- "4",
"Hi",
"1/1/0001 12:00:00 AM",
"00000000-1111-1111-0000-000000000001"});
- table438.AddRow(new string[] {
+ table420.AddRow(new string[] {
"0",
- "5",
"Now",
"1/1/0001 12:00:00 AM",
"00000000-1111-1111-0000-000000000002"});
- table438.AddRow(new string[] {
+ table420.AddRow(new string[] {
"0",
- "41",
"Brown",
"1/1/0001 12:00:00 AM",
"00000000-1111-1111-0000-000000000003"});
- table438.AddRow(new string[] {
+ table420.AddRow(new string[] {
"0",
- "",
"It",
"1/1/0001 12:00:00 AM",
"00000000-1111-1111-0000-000000000004"});
-#line 160
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table438, "And ");
+#line 112
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table420, "And ");
#line hidden
- global::Reqnroll.Table table439 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table421 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table439.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table421.AddRow(new string[] {
+ "6",
+ "Road Bikes",
+ "6/1/2002 12:00:00 AM",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table421.AddRow(new string[] {
+ "7",
+ "For Delete Tests Only",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table439.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 167
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table439, "And ");
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 119
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table421, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature
index dc5c152..492e347 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature
@@ -10,7 +10,6 @@ Background:
Scenario: DeleteAsync1234
-
When I call the method 'DeleteAsync' with the parameter values
| Key | Value | TypeName | ModifiedDate |
| productCategoryId | 1234 | int | 21 Apr 2024 12:34:56 |
@@ -18,36 +17,37 @@ Scenario: DeleteAsync1234
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
- | IsFailure | IsSuccess | Message |
+ | IsFailure | IsSuccess | Message |
| True | False | Unable to find record to delete! |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | False |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
-
-
-
+ And the table 'Production.ProductCategory' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: DeleteAsync42
+Scenario: DeleteAsync7
Given I reset the database after the scenario
When I call the method 'DeleteAsync' with the parameter values
| Key | Value | TypeName |
- | productCategoryId | 42 | int |
+ | productCategoryId | 7 | int |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
| IsFailure | IsSuccess | Message |
| False | True | |
- And the ServiceResult is of type 'System.Boolean' with the value
- | Expected |
- | True |
- Then the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
+ Then the table 'Production.ProductCategory' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs
index d1526f2..7d9be85 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceDeleteTests.feature.cs
@@ -128,79 +128,93 @@ public async System.Threading.Tasks.Task DeleteAsync1234()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table440 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table422 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName",
"ModifiedDate"});
- table440.AddRow(new string[] {
+ table422.AddRow(new string[] {
"productCategoryId",
"1234",
"int",
"21 Apr 2024 12:34:56"});
-#line 14
- await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table440, "When ");
+#line 13
+ await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table422, "When ");
#line hidden
- global::Reqnroll.Table table441 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table423 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table441.AddRow(new string[] {
+ table423.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 17
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table441, "Then ");
+#line 16
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table423, "Then ");
#line hidden
- global::Reqnroll.Table table442 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table424 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table442.AddRow(new string[] {
+ table424.AddRow(new string[] {
"True",
"False",
"Unable to find record to delete!"});
-#line 20
- await testRunner.AndAsync("the result is", ((string)(null)), table442, "And ");
+#line 19
+ await testRunner.AndAsync("the result is", ((string)(null)), table424, "And ");
#line hidden
- global::Reqnroll.Table table443 = new global::Reqnroll.Table(new string[] {
- "Expected"});
- table443.AddRow(new string[] {
- "False"});
-#line 24
- await testRunner.AndAsync("the ServiceResult is of type \'System.Boolean\' with the value", ((string)(null)), table443, "And ");
-#line hidden
- global::Reqnroll.Table table444 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table425 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table444.AddRow(new string[] {
- "41",
+ table425.AddRow(new string[] {
+ "1",
+ "Bikes",
+ "6/1/2002 12:00:00 AM",
+ "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
+ table425.AddRow(new string[] {
+ "2",
+ "Components",
+ "6/1/2002 12:00:00 AM",
+ "c657828d-d808-4aba-91a3-af2ce02300e9"});
+ table425.AddRow(new string[] {
+ "3",
+ "Clothing",
+ "6/1/2002 12:00:00 AM",
+ "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
+ table425.AddRow(new string[] {
"4",
- "Tires and Tubes",
+ "Accessories",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table444.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 27
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table444, "And ");
+ "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
+ table425.AddRow(new string[] {
+ "5",
+ "Mountain Bikes",
+ "6/1/2002 12:00:00 AM",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+ table425.AddRow(new string[] {
+ "6",
+ "Road Bikes",
+ "6/1/2002 12:00:00 AM",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table425.AddRow(new string[] {
+ "7",
+ "For Delete Tests Only",
+ "6/1/2002 12:00:00 AM",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 23
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' contains", ((string)(null)), table425, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("DeleteAsync42")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("DeleteAsync7")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceDeleteTests")]
- public async System.Threading.Tasks.Task DeleteAsync42()
+ public async System.Threading.Tasks.Task DeleteAsync7()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("DeleteAsync42", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 35
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("DeleteAsync7", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 33
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -213,60 +227,75 @@ public async System.Threading.Tasks.Task DeleteAsync42()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
-#line 36
+#line 34
await testRunner.GivenAsync("I reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table445 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table426 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table445.AddRow(new string[] {
+ table426.AddRow(new string[] {
"productCategoryId",
- "42",
+ "7",
"int"});
-#line 37
- await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table445, "When ");
+#line 35
+ await testRunner.WhenAsync("I call the method \'DeleteAsync\' with the parameter values", ((string)(null)), table426, "When ");
#line hidden
- global::Reqnroll.Table table446 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table427 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table446.AddRow(new string[] {
+ table427.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 40
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table446, "Then ");
+#line 38
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table427, "Then ");
#line hidden
- global::Reqnroll.Table table447 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table428 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table447.AddRow(new string[] {
+ table428.AddRow(new string[] {
"False",
"True",
""});
-#line 43
- await testRunner.AndAsync("the result is", ((string)(null)), table447, "And ");
-#line hidden
- global::Reqnroll.Table table448 = new global::Reqnroll.Table(new string[] {
- "Expected"});
- table448.AddRow(new string[] {
- "True"});
-#line 46
- await testRunner.AndAsync("the ServiceResult is of type \'System.Boolean\' with the value", ((string)(null)), table448, "And ");
+#line 41
+ await testRunner.AndAsync("the result is", ((string)(null)), table428, "And ");
#line hidden
- global::Reqnroll.Table table449 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table429 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table449.AddRow(new string[] {
- "41",
+ table429.AddRow(new string[] {
+ "1",
+ "Bikes",
+ "6/1/2002 12:00:00 AM",
+ "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
+ table429.AddRow(new string[] {
+ "2",
+ "Components",
+ "6/1/2002 12:00:00 AM",
+ "c657828d-d808-4aba-91a3-af2ce02300e9"});
+ table429.AddRow(new string[] {
+ "3",
+ "Clothing",
+ "6/1/2002 12:00:00 AM",
+ "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
+ table429.AddRow(new string[] {
"4",
- "Tires and Tubes",
+ "Accessories",
+ "6/1/2002 12:00:00 AM",
+ "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
+ table429.AddRow(new string[] {
+ "5",
+ "Mountain Bikes",
+ "6/1/2002 12:00:00 AM",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+ table429.AddRow(new string[] {
+ "6",
+ "Road Bikes",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
-#line 49
- await testRunner.ThenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table449, "Then ");
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+#line 44
+ await testRunner.ThenAsync("the table \'Production.ProductCategory\' contains", ((string)(null)), table429, "Then ");
#line hidden
}
await this.ScenarioCleanupAsync();
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature
index 2639b09..d66642f 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature
@@ -15,8 +15,8 @@ Scenario: FindAsync01
| Expected |
| AdventureWorksDemo.Data.Models.ProductCategoryModel |
And the result is
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Bikes | | 1 | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
Scenario: FindAsync04
When I call the method 'FindAsync' with the parameter values
@@ -26,39 +26,54 @@ Scenario: FindAsync04
| Expected |
| AdventureWorksDemo.Data.Models.ProductCategoryModel |
And the result is
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Accessories | | 4 | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
-
-Scenario: FindAsync1234
- When I call the method 'FindAsync' with the parameter values
- | Key | Value | TypeName |
- | productCategoryId | 1234 | int |
-
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+
+Scenario: FindAllAsync_0_5
+ When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
+ | PageNumber | PageSize |
+ | 0 | 5 |
+ And I call the method 'FindAllAsync' with the parameter values
+ | Key | Value | TypeName |
+ | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ProductCategoryModel |
- And the result is null
-
-Scenario: FindAllAsync_1_5
+ | Expected |
+ | AdventureWorksDemo.Data.Paging.PagedList |
+
+ And the PagedList values are
+ | TotalPages | TotalCount | PageSize | CurrentPage |
+ | 2 | 7 | 5 | 0 |
+ And the sorted results are
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+
+Scenario: FindAllAsync_0_0
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 1 | 5 |
+ | 0 | 0 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Paging.PagedList |
+
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 9 | 42 | 5 | 1 |
+ | 1 | 7 | 25 | 0 |
And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Road Bikes | 1 | 6 | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
- | 6/1/2002 12:00:00 AM | Touring Bikes | 1 | 7 | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
- | 6/1/2002 12:00:00 AM | Handlebars | 2 | 8 | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 |
- | 6/1/2002 12:00:00 AM | Bottom Brackets | 2 | 9 | a9e54089-8a1e-4cf5-8646-e3801f685934 |
- | 6/1/2002 12:00:00 AM | Brakes | 2 | 10 | d43ba4a3-ef0d-426b-90eb-4be4547dd30c |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
Scenario: FindAllAsync_0_500
@@ -73,51 +88,17 @@ Scenario: FindAllAsync_0_500
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 42 | 100 | 0 |
+ | 1 | 7 | 100 | 0 |
And the sorted results are
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
- | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
- | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
- | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
- | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
- | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
- | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
- | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 |
- | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 |
- | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c |
- | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 |
- | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e |
- | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf |
- | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf |
- | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 |
- | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be |
- | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 |
- | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 |
- | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 |
- | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 |
- | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 |
- | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 |
- | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f |
- | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 |
- | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 |
- | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da |
- | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 |
- | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 |
- | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 |
- | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc |
- | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f |
- | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 |
- | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 |
- | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 |
- | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc |
- | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 |
- | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 |
- | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 |
- | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 |
- | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+
Scenario: FindAllAsync_0_500_Sort_ProductCategoryId
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -131,51 +112,16 @@ Scenario: FindAllAsync_0_500_Sort_ProductCategoryId
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 42 | 100 | 0 |
+ | 1 | 7 | 100 | 0 |
And the sorted results are
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
- | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
- | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
- | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
- | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
- | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
- | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
- | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 |
- | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 |
- | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c |
- | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 |
- | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e |
- | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf |
- | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf |
- | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 |
- | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be |
- | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 |
- | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 |
- | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 |
- | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 |
- | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 |
- | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 |
- | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f |
- | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 |
- | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 |
- | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da |
- | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 |
- | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 |
- | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 |
- | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc |
- | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f |
- | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 |
- | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 |
- | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 |
- | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc |
- | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 |
- | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 |
- | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 |
- | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 |
- | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdDesc
@@ -190,51 +136,16 @@ Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdDesc
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 42 | 100 | 0 |
+ | 1 | 7 | 100 | 0 |
And the sorted results are
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 |
- | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 |
- | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 |
- | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 |
- | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 |
- | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc |
- | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 |
- | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 |
- | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 |
- | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f |
- | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc |
- | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 |
- | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 |
- | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 |
- | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da |
- | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 |
- | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 |
- | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f |
- | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 |
- | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 |
- | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 |
- | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 |
- | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 |
- | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 |
- | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be |
- | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 |
- | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf |
- | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf |
- | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e |
- | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 |
- | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c |
- | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 |
- | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 |
- | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
- | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
- | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
- | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
- | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
- | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
- | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdASC
@@ -249,76 +160,31 @@ Scenario: FindAllAsync_0_500_Sort_ProductCategoryIdASC
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 1 | 42 | 100 | 0 |
+ | 1 | 7 | 100 | 0 |
And the sorted results are
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 1 | | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
- | 2 | | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
- | 3 | | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
- | 4 | | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
- | 5 | 1 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
- | 6 | 1 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
- | 7 | 1 | Touring Bikes | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
- | 8 | 2 | Handlebars | 6/1/2002 12:00:00 AM | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 |
- | 9 | 2 | Bottom Brackets | 6/1/2002 12:00:00 AM | a9e54089-8a1e-4cf5-8646-e3801f685934 |
- | 10 | 2 | Brakes | 6/1/2002 12:00:00 AM | d43ba4a3-ef0d-426b-90eb-4be4547dd30c |
- | 11 | 2 | Chains | 6/1/2002 12:00:00 AM | e93a7231-f16c-4b0f-8c41-c73fdec62da0 |
- | 12 | 2 | Cranksets | 6/1/2002 12:00:00 AM | 4f644521-422b-4f19-974a-e3df6102567e |
- | 13 | 2 | Derailleurs | 6/1/2002 12:00:00 AM | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf |
- | 14 | 2 | Forks | 6/1/2002 12:00:00 AM | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf |
- | 15 | 2 | Headsets | 6/1/2002 12:00:00 AM | 7c782bbe-5a16-495a-aa50-10afe5a84af2 |
- | 16 | 2 | Mountain Frames | 6/1/2002 12:00:00 AM | 61b21b65-e16a-4be7-9300-4d8e9db861be |
- | 17 | 2 | Pedals | 6/1/2002 12:00:00 AM | 6d24ac07-7a84-4849-864a-865a14125bc9 |
- | 18 | 2 | Road Frames | 6/1/2002 12:00:00 AM | 5515f857-075b-4f9a-87b7-43b4997077b3 |
- | 19 | 2 | Saddles | 6/1/2002 12:00:00 AM | 049fffa3-9d30-46df-82f7-f20730ec02b3 |
- | 20 | 2 | Touring Frames | 6/1/2002 12:00:00 AM | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 |
- | 21 | 2 | Wheels | 6/1/2002 12:00:00 AM | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 |
- | 22 | 3 | Bib-Shorts | 6/1/2002 12:00:00 AM | 67b58d2b-5798-4a90-8c6c-5ddacf057171 |
- | 23 | 3 | Caps | 6/1/2002 12:00:00 AM | 430dd6a8-a755-4b23-bb05-52520107da5f |
- | 24 | 3 | Gloves | 6/1/2002 12:00:00 AM | 92d5657b-0032-4e49-bad5-41a441a70942 |
- | 25 | 3 | Jerseys | 6/1/2002 12:00:00 AM | 09e91437-ba4f-4b1a-8215-74184fd95db8 |
- | 26 | 3 | Shorts | 6/1/2002 12:00:00 AM | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da |
- | 27 | 3 | Socks | 6/1/2002 12:00:00 AM | 701019c3-09fe-4949-8386-c6ce686474e5 |
- | 28 | 3 | Tights | 6/1/2002 12:00:00 AM | 5deb3e55-9897-4416-b18a-515e970bc2d1 |
- | 29 | 3 | Vests | 6/1/2002 12:00:00 AM | 9ad7fe93-5ba0-4736-b578-ff80a2071297 |
- | 30 | 4 | Bike Racks | 6/1/2002 12:00:00 AM | 4624b5ce-66d6-496b-9201-c053df3556cc |
- | 31 | 4 | Bike Stands | 6/1/2002 12:00:00 AM | 43b445c8-b820-424e-a1d5-90d81da0b46f |
- | 32 | 4 | Bottles and Cages | 6/1/2002 12:00:00 AM | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 |
- | 33 | 4 | Cleaners | 6/1/2002 12:00:00 AM | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 |
- | 34 | 4 | Fenders | 6/1/2002 12:00:00 AM | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 |
- | 35 | 4 | Helmets | 6/1/2002 12:00:00 AM | f5e07a33-c9e0-439c-b5f3-9f25fb65becc |
- | 36 | 4 | Hydration Packs | 6/1/2002 12:00:00 AM | 646a8906-fc87-4267-a443-9c6d791e6693 |
- | 37 | 4 | Lights | 6/1/2002 12:00:00 AM | 954178ba-624f-42db-95f6-ca035f36d130 |
- | 38 | 4 | Locks | 6/1/2002 12:00:00 AM | 19646983-3fa0-4773-9a0c-f34c49df9bc8 |
- | 39 | 4 | Panniers | 6/1/2002 12:00:00 AM | 3002a5d5-fec3-464b-bef3-e0f81d35f431 |
- | 40 | 4 | Pumps | 6/1/2002 12:00:00 AM | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
-Scenario: FindAllAsync_2_5
- When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
- | PageNumber | PageSize |
- | 2 | 5 |
- And I call the method 'FindAllAsync' with the parameter values
- | Key | Value | TypeName |
- | pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+
+Scenario: FindAsync1234
+ When I call the method 'FindAsync' with the parameter values
+ | Key | Value | TypeName |
+ | productCategoryId | 1234 | int |
+
Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Paging.PagedList |
- And the PagedList values are
- | TotalPages | TotalCount | PageSize | CurrentPage |
- | 9 | 42 | 5 | 2 |
- And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Chains | 2 | 11 | e93a7231-f16c-4b0f-8c41-c73fdec62da0 |
- | 6/1/2002 12:00:00 AM | Cranksets | 2 | 12 | 4f644521-422b-4f19-974a-e3df6102567e |
- | 6/1/2002 12:00:00 AM | Derailleurs | 2 | 13 | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf |
- | 6/1/2002 12:00:00 AM | Forks | 2 | 14 | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf |
- | 6/1/2002 12:00:00 AM | Headsets | 2 | 15 | 7c782bbe-5a16-495a-aa50-10afe5a84af2 |
+ | Expected |
+ | AdventureWorksDemo.Data.Models.ProductCategoryModel |
+ And the result is null
-Scenario: FindAllAsync_2_8
+Scenario: FindAllAsync_1_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 2 | 8 |
+ | 1 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -327,22 +193,16 @@ Scenario: FindAllAsync_2_8
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 6 | 42 | 8 | 2 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Pedals | 2 | 17 | 6d24ac07-7a84-4849-864a-865a14125bc9 |
- | 6/1/2002 12:00:00 AM | Road Frames | 2 | 18 | 5515f857-075b-4f9a-87b7-43b4997077b3 |
- | 6/1/2002 12:00:00 AM | Saddles | 2 | 19 | 049fffa3-9d30-46df-82f7-f20730ec02b3 |
- | 6/1/2002 12:00:00 AM | Touring Frames | 2 | 20 | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 |
- | 6/1/2002 12:00:00 AM | Wheels | 2 | 21 | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 |
- | 6/1/2002 12:00:00 AM | Bib-Shorts | 3 | 22 | 67b58d2b-5798-4a90-8c6c-5ddacf057171 |
- | 6/1/2002 12:00:00 AM | Caps | 3 | 23 | 430dd6a8-a755-4b23-bb05-52520107da5f |
- | 6/1/2002 12:00:00 AM | Gloves | 3 | 24 | 92d5657b-0032-4e49-bad5-41a441a70942 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: FindAllAsync_1234_5
+Scenario: FindAllAsync_2_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 1234 | 5 |
+ | 2 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
@@ -351,75 +211,52 @@ Scenario: FindAllAsync_1234_5
| AdventureWorksDemo.Data.Paging.PagedList |
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 9 | 42 | 5 | 8 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Tires and Tubes | 4 | 41 | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 6/1/2005 12:00:00 AM | Record to Delete | | 42 | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: FindAllAsync_0_5
+Scenario: FindAllAsync_2_8
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 0 | 5 |
+ | 2 | 8 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Paging.PagedList |
-
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 9 | 42 | 5 | 0 |
+ | 1 | 7 | 8 | 0 |
And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Bikes | | 1 | cfbda25c-df71-47a7-b81b-64ee161aa37c |
- | 6/1/2002 12:00:00 AM | Components | | 2 | c657828d-d808-4aba-91a3-af2ce02300e9 |
- | 6/1/2002 12:00:00 AM | Clothing | | 3 | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
- | 6/1/2002 12:00:00 AM | Accessories | | 4 | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
- | 6/1/2002 12:00:00 AM | Mountain Bikes | 1 | 5 | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: FindAllAsync_0_0
+Scenario: FindAllAsync_1234_5
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
| PageNumber | PageSize |
- | 0 | 0 |
+ | 1234 | 5 |
And I call the method 'FindAllAsync' with the parameter values
| Key | Value | TypeName |
| pageingFilter | {{model}} | AdventureWorksDemo.Data.Paging.PagingFilter |
Then the result is of type
| Expected |
| AdventureWorksDemo.Data.Paging.PagedList |
-
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 42 | 25 | 0 |
+ | 2 | 7 | 5 | 1 |
And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Bikes | | 1 | cfbda25c-df71-47a7-b81b-64ee161aa37c |
- | 6/1/2002 12:00:00 AM | Components | | 2 | c657828d-d808-4aba-91a3-af2ce02300e9 |
- | 6/1/2002 12:00:00 AM | Clothing | | 3 | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
- | 6/1/2002 12:00:00 AM | Accessories | | 4 | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
- | 6/1/2002 12:00:00 AM | Mountain Bikes | 1 | 5 | 2d364ade-264a-433c-b092-4fcbf3804e01 |
- | 6/1/2002 12:00:00 AM | Road Bikes | 1 | 6 | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
- | 6/1/2002 12:00:00 AM | Touring Bikes | 1 | 7 | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
- | 6/1/2002 12:00:00 AM | Handlebars | 2 | 8 | 3ef2c725-7135-4c85-9ae6-ae9a3bdd9283 |
- | 6/1/2002 12:00:00 AM | Bottom Brackets | 2 | 9 | a9e54089-8a1e-4cf5-8646-e3801f685934 |
- | 6/1/2002 12:00:00 AM | Brakes | 2 | 10 | d43ba4a3-ef0d-426b-90eb-4be4547dd30c |
- | 6/1/2002 12:00:00 AM | Chains | 2 | 11 | e93a7231-f16c-4b0f-8c41-c73fdec62da0 |
- | 6/1/2002 12:00:00 AM | Cranksets | 2 | 12 | 4f644521-422b-4f19-974a-e3df6102567e |
- | 6/1/2002 12:00:00 AM | Derailleurs | 2 | 13 | 1830d70c-aa2a-40c0-a271-5ba86f38f8bf |
- | 6/1/2002 12:00:00 AM | Forks | 2 | 14 | b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf |
- | 6/1/2002 12:00:00 AM | Headsets | 2 | 15 | 7c782bbe-5a16-495a-aa50-10afe5a84af2 |
- | 6/1/2002 12:00:00 AM | Mountain Frames | 2 | 16 | 61b21b65-e16a-4be7-9300-4d8e9db861be |
- | 6/1/2002 12:00:00 AM | Pedals | 2 | 17 | 6d24ac07-7a84-4849-864a-865a14125bc9 |
- | 6/1/2002 12:00:00 AM | Road Frames | 2 | 18 | 5515f857-075b-4f9a-87b7-43b4997077b3 |
- | 6/1/2002 12:00:00 AM | Saddles | 2 | 19 | 049fffa3-9d30-46df-82f7-f20730ec02b3 |
- | 6/1/2002 12:00:00 AM | Touring Frames | 2 | 20 | d2e3f1a8-56c4-4f36-b29d-5659fc0d2789 |
- | 6/1/2002 12:00:00 AM | Wheels | 2 | 21 | 43521287-4b0b-438e-b80e-d82d9ad7c9f0 |
- | 6/1/2002 12:00:00 AM | Bib-Shorts | 3 | 22 | 67b58d2b-5798-4a90-8c6c-5ddacf057171 |
- | 6/1/2002 12:00:00 AM | Caps | 3 | 23 | 430dd6a8-a755-4b23-bb05-52520107da5f |
- | 6/1/2002 12:00:00 AM | Gloves | 3 | 24 | 92d5657b-0032-4e49-bad5-41a441a70942 |
- | 6/1/2002 12:00:00 AM | Jerseys | 3 | 25 | 09e91437-ba4f-4b1a-8215-74184fd95db8 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
Scenario: FindAllAsync_5_0
When I populate the model 'AdventureWorksDemo.Data.Paging.PagingFilter'
@@ -434,24 +271,14 @@ Scenario: FindAllAsync_5_0
And the PagedList values are
| TotalPages | TotalCount | PageSize | CurrentPage |
- | 2 | 42 | 25 | 1 |
+ | 1 | 7 | 25 | 0 |
And the sorted results are
- | ModifiedDate | Name | ParentProductCategoryId | ProductCategoryId | Rowguid |
- | 6/1/2002 12:00:00 AM | Shorts | 3 | 26 | 1a5ba5b3-03c3-457c-b11e-4fa85ede87da |
- | 6/1/2002 12:00:00 AM | Socks | 3 | 27 | 701019c3-09fe-4949-8386-c6ce686474e5 |
- | 6/1/2002 12:00:00 AM | Tights | 3 | 28 | 5deb3e55-9897-4416-b18a-515e970bc2d1 |
- | 6/1/2002 12:00:00 AM | Vests | 3 | 29 | 9ad7fe93-5ba0-4736-b578-ff80a2071297 |
- | 6/1/2002 12:00:00 AM | Bike Racks | 4 | 30 | 4624b5ce-66d6-496b-9201-c053df3556cc |
- | 6/1/2002 12:00:00 AM | Bike Stands | 4 | 31 | 43b445c8-b820-424e-a1d5-90d81da0b46f |
- | 6/1/2002 12:00:00 AM | Bottles and Cages | 4 | 32 | 9b7dff41-9fa3-4776-8def-2c9a48c8b779 |
- | 6/1/2002 12:00:00 AM | Cleaners | 4 | 33 | 9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3 |
- | 6/1/2002 12:00:00 AM | Fenders | 4 | 34 | 1697f8a2-0a08-4883-b7dd-d19117b4e9a7 |
- | 6/1/2002 12:00:00 AM | Helmets | 4 | 35 | f5e07a33-c9e0-439c-b5f3-9f25fb65becc |
- | 6/1/2002 12:00:00 AM | Hydration Packs | 4 | 36 | 646a8906-fc87-4267-a443-9c6d791e6693 |
- | 6/1/2002 12:00:00 AM | Lights | 4 | 37 | 954178ba-624f-42db-95f6-ca035f36d130 |
- | 6/1/2002 12:00:00 AM | Locks | 4 | 38 | 19646983-3fa0-4773-9a0c-f34c49df9bc8 |
- | 6/1/2002 12:00:00 AM | Panniers | 4 | 39 | 3002a5d5-fec3-464b-bef3-e0f81d35f431 |
- | 6/1/2002 12:00:00 AM | Pumps | 4 | 40 | fe4d46f2-c87c-48c5-a4a1-3f55712d80b1 |
- | 6/1/2002 12:00:00 AM | Tires and Tubes | 4 | 41 | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 6/1/2005 12:00:00 AM | Record to Delete | | 42 | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs
index 79a52b4..1a5b272 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceFindTests.feature.cs
@@ -126,38 +126,36 @@ public async System.Threading.Tasks.Task FindAsync01()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table450 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table430 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table450.AddRow(new string[] {
+ table430.AddRow(new string[] {
"productCategoryId",
"1",
"int"});
#line 11
- await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table450, "When ");
+ await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table430, "When ");
#line hidden
- global::Reqnroll.Table table451 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table431 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table451.AddRow(new string[] {
+ table431.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
#line 14
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table451, "Then ");
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table431, "Then ");
#line hidden
- global::Reqnroll.Table table452 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table432 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table452.AddRow(new string[] {
+ table432.AddRow(new string[] {
+ "1",
"6/1/2002 12:00:00 AM",
"Bikes",
- "",
- "1",
"cfbda25c-df71-47a7-b81b-64ee161aa37c"});
#line 17
- await testRunner.AndAsync("the result is", ((string)(null)), table452, "And ");
+ await testRunner.AndAsync("the result is", ((string)(null)), table432, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -184,51 +182,49 @@ public async System.Threading.Tasks.Task FindAsync04()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table453 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table433 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table453.AddRow(new string[] {
+ table433.AddRow(new string[] {
"productCategoryId",
"4",
"int"});
#line 22
- await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table453, "When ");
+ await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table433, "When ");
#line hidden
- global::Reqnroll.Table table454 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table434 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table454.AddRow(new string[] {
+ table434.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
#line 25
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table454, "Then ");
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table434, "Then ");
#line hidden
- global::Reqnroll.Table table455 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table435 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table455.AddRow(new string[] {
+ table435.AddRow(new string[] {
+ "4",
"6/1/2002 12:00:00 AM",
"Accessories",
- "",
- "4",
"2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
#line 28
- await testRunner.AndAsync("the result is", ((string)(null)), table455, "And ");
+ await testRunner.AndAsync("the result is", ((string)(null)), table435, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAsync1234")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_5")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAsync1234()
+ public async System.Threading.Tasks.Task FindAllAsync_0_5()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAsync1234", null, tagsOfScenario, argumentsOfScenario, featureTags);
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
#line 32
this.ScenarioInitialize(scenarioInfo);
#line hidden
@@ -242,40 +238,93 @@ public async System.Threading.Tasks.Task FindAsync1234()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table456 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table436 = new global::Reqnroll.Table(new string[] {
+ "PageNumber",
+ "PageSize"});
+ table436.AddRow(new string[] {
+ "0",
+ "5"});
+#line 33
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table436, "When ");
+#line hidden
+ global::Reqnroll.Table table437 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table456.AddRow(new string[] {
- "productCategoryId",
- "1234",
- "int"});
-#line 33
- await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table456, "When ");
+ table437.AddRow(new string[] {
+ "pageingFilter",
+ "{{model}}",
+ "AdventureWorksDemo.Data.Paging.PagingFilter"});
+#line 36
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table437, "And ");
#line hidden
- global::Reqnroll.Table table457 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table438 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table457.AddRow(new string[] {
- "AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 37
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table457, "Then ");
+ table438.AddRow(new string[] {
+ "AdventureWorksDemo.Data.Paging.PagedList"});
+#line 39
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table438, "Then ");
#line hidden
-#line 40
- await testRunner.AndAsync("the result is null", ((string)(null)), ((global::Reqnroll.Table)(null)), "And ");
+ global::Reqnroll.Table table439 = new global::Reqnroll.Table(new string[] {
+ "TotalPages",
+ "TotalCount",
+ "PageSize",
+ "CurrentPage"});
+ table439.AddRow(new string[] {
+ "2",
+ "7",
+ "5",
+ "0"});
+#line 43
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table439, "And ");
+#line hidden
+ global::Reqnroll.Table table440 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
+ "ModifiedDate",
+ "Name",
+ "Rowguid"});
+ table440.AddRow(new string[] {
+ "1",
+ "6/1/2002 12:00:00 AM",
+ "Bikes",
+ "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
+ table440.AddRow(new string[] {
+ "2",
+ "6/1/2002 12:00:00 AM",
+ "Components",
+ "c657828d-d808-4aba-91a3-af2ce02300e9"});
+ table440.AddRow(new string[] {
+ "3",
+ "6/1/2002 12:00:00 AM",
+ "Clothing",
+ "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
+ table440.AddRow(new string[] {
+ "4",
+ "6/1/2002 12:00:00 AM",
+ "Accessories",
+ "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
+ table440.AddRow(new string[] {
+ "5",
+ "6/1/2002 12:00:00 AM",
+ "Mountain Bikes",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+#line 46
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table440, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1_5")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_0")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAllAsync_1_5()
+ public async System.Threading.Tasks.Task FindAllAsync_0_0()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 42
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_0", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 54
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -288,85 +337,89 @@ public async System.Threading.Tasks.Task FindAllAsync_1_5()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table458 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table441 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table458.AddRow(new string[] {
- "1",
- "5"});
-#line 43
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table458, "When ");
+ table441.AddRow(new string[] {
+ "0",
+ "0"});
+#line 55
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table441, "When ");
#line hidden
- global::Reqnroll.Table table459 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table442 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table459.AddRow(new string[] {
+ table442.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 46
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table459, "And ");
+#line 58
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table442, "And ");
#line hidden
- global::Reqnroll.Table table460 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table443 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table460.AddRow(new string[] {
+ table443.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 49
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table460, "Then ");
+#line 61
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table443, "Then ");
#line hidden
- global::Reqnroll.Table table461 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table444 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table461.AddRow(new string[] {
- "9",
- "42",
- "5",
- "1"});
-#line 52
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table461, "And ");
+ table444.AddRow(new string[] {
+ "1",
+ "7",
+ "25",
+ "0"});
+#line 65
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table444, "And ");
#line hidden
- global::Reqnroll.Table table462 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table445 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table462.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Road Bikes",
- "1",
- "6",
- "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
- table462.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Touring Bikes",
+ table445.AddRow(new string[] {
"1",
- "7",
- "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
- table462.AddRow(new string[] {
"6/1/2002 12:00:00 AM",
- "Handlebars",
+ "Bikes",
+ "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
+ table445.AddRow(new string[] {
"2",
- "8",
- "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"});
- table462.AddRow(new string[] {
"6/1/2002 12:00:00 AM",
- "Bottom Brackets",
- "2",
- "9",
- "a9e54089-8a1e-4cf5-8646-e3801f685934"});
- table462.AddRow(new string[] {
+ "Components",
+ "c657828d-d808-4aba-91a3-af2ce02300e9"});
+ table445.AddRow(new string[] {
+ "3",
"6/1/2002 12:00:00 AM",
- "Brakes",
- "2",
- "10",
- "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"});
-#line 55
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table462, "And ");
+ "Clothing",
+ "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
+ table445.AddRow(new string[] {
+ "4",
+ "6/1/2002 12:00:00 AM",
+ "Accessories",
+ "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
+ table445.AddRow(new string[] {
+ "5",
+ "6/1/2002 12:00:00 AM",
+ "Mountain Bikes",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+ table445.AddRow(new string[] {
+ "6",
+ "6/1/2002 12:00:00 AM",
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table445.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 68
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table445, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -380,7 +433,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500()
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 64
+#line 79
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -393,307 +446,89 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table463 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table446 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table463.AddRow(new string[] {
+ table446.AddRow(new string[] {
"0",
"500"});
-#line 65
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table463, "When ");
+#line 80
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table446, "When ");
#line hidden
- global::Reqnroll.Table table464 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table447 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table464.AddRow(new string[] {
+ table447.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 68
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table464, "And ");
+#line 83
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table447, "And ");
#line hidden
- global::Reqnroll.Table table465 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table448 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table465.AddRow(new string[] {
+ table448.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 71
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table465, "Then ");
+#line 86
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table448, "Then ");
#line hidden
- global::Reqnroll.Table table466 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table449 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table466.AddRow(new string[] {
+ table449.AddRow(new string[] {
"1",
- "42",
+ "7",
"100",
"0"});
-#line 74
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table466, "And ");
+#line 89
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table449, "And ");
#line hidden
- global::Reqnroll.Table table467 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table450 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"1",
- "",
- "Bikes",
"6/1/2002 12:00:00 AM",
+ "Bikes",
"cfbda25c-df71-47a7-b81b-64ee161aa37c"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"2",
- "",
- "Components",
"6/1/2002 12:00:00 AM",
+ "Components",
"c657828d-d808-4aba-91a3-af2ce02300e9"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"3",
- "",
- "Clothing",
"6/1/2002 12:00:00 AM",
+ "Clothing",
"10a7c342-ca82-48d4-8a38-46a2eb089b74"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"4",
- "",
- "Accessories",
"6/1/2002 12:00:00 AM",
+ "Accessories",
"2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"5",
- "1",
- "Mountain Bikes",
"6/1/2002 12:00:00 AM",
+ "Mountain Bikes",
"2d364ade-264a-433c-b092-4fcbf3804e01"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"6",
- "1",
- "Road Bikes",
"6/1/2002 12:00:00 AM",
+ "Road Bikes",
"000310c0-bcc8-42c4-b0c3-45ae611af06b"});
- table467.AddRow(new string[] {
+ table450.AddRow(new string[] {
"7",
- "1",
- "Touring Bikes",
"6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
"02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
- table467.AddRow(new string[] {
- "8",
- "2",
- "Handlebars",
- "6/1/2002 12:00:00 AM",
- "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"});
- table467.AddRow(new string[] {
- "9",
- "2",
- "Bottom Brackets",
- "6/1/2002 12:00:00 AM",
- "a9e54089-8a1e-4cf5-8646-e3801f685934"});
- table467.AddRow(new string[] {
- "10",
- "2",
- "Brakes",
- "6/1/2002 12:00:00 AM",
- "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"});
- table467.AddRow(new string[] {
- "11",
- "2",
- "Chains",
- "6/1/2002 12:00:00 AM",
- "e93a7231-f16c-4b0f-8c41-c73fdec62da0"});
- table467.AddRow(new string[] {
- "12",
- "2",
- "Cranksets",
- "6/1/2002 12:00:00 AM",
- "4f644521-422b-4f19-974a-e3df6102567e"});
- table467.AddRow(new string[] {
- "13",
- "2",
- "Derailleurs",
- "6/1/2002 12:00:00 AM",
- "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"});
- table467.AddRow(new string[] {
- "14",
- "2",
- "Forks",
- "6/1/2002 12:00:00 AM",
- "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"});
- table467.AddRow(new string[] {
- "15",
- "2",
- "Headsets",
- "6/1/2002 12:00:00 AM",
- "7c782bbe-5a16-495a-aa50-10afe5a84af2"});
- table467.AddRow(new string[] {
- "16",
- "2",
- "Mountain Frames",
- "6/1/2002 12:00:00 AM",
- "61b21b65-e16a-4be7-9300-4d8e9db861be"});
- table467.AddRow(new string[] {
- "17",
- "2",
- "Pedals",
- "6/1/2002 12:00:00 AM",
- "6d24ac07-7a84-4849-864a-865a14125bc9"});
- table467.AddRow(new string[] {
- "18",
- "2",
- "Road Frames",
- "6/1/2002 12:00:00 AM",
- "5515f857-075b-4f9a-87b7-43b4997077b3"});
- table467.AddRow(new string[] {
- "19",
- "2",
- "Saddles",
- "6/1/2002 12:00:00 AM",
- "049fffa3-9d30-46df-82f7-f20730ec02b3"});
- table467.AddRow(new string[] {
- "20",
- "2",
- "Touring Frames",
- "6/1/2002 12:00:00 AM",
- "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"});
- table467.AddRow(new string[] {
- "21",
- "2",
- "Wheels",
- "6/1/2002 12:00:00 AM",
- "43521287-4b0b-438e-b80e-d82d9ad7c9f0"});
- table467.AddRow(new string[] {
- "22",
- "3",
- "Bib-Shorts",
- "6/1/2002 12:00:00 AM",
- "67b58d2b-5798-4a90-8c6c-5ddacf057171"});
- table467.AddRow(new string[] {
- "23",
- "3",
- "Caps",
- "6/1/2002 12:00:00 AM",
- "430dd6a8-a755-4b23-bb05-52520107da5f"});
- table467.AddRow(new string[] {
- "24",
- "3",
- "Gloves",
- "6/1/2002 12:00:00 AM",
- "92d5657b-0032-4e49-bad5-41a441a70942"});
- table467.AddRow(new string[] {
- "25",
- "3",
- "Jerseys",
- "6/1/2002 12:00:00 AM",
- "09e91437-ba4f-4b1a-8215-74184fd95db8"});
- table467.AddRow(new string[] {
- "26",
- "3",
- "Shorts",
- "6/1/2002 12:00:00 AM",
- "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"});
- table467.AddRow(new string[] {
- "27",
- "3",
- "Socks",
- "6/1/2002 12:00:00 AM",
- "701019c3-09fe-4949-8386-c6ce686474e5"});
- table467.AddRow(new string[] {
- "28",
- "3",
- "Tights",
- "6/1/2002 12:00:00 AM",
- "5deb3e55-9897-4416-b18a-515e970bc2d1"});
- table467.AddRow(new string[] {
- "29",
- "3",
- "Vests",
- "6/1/2002 12:00:00 AM",
- "9ad7fe93-5ba0-4736-b578-ff80a2071297"});
- table467.AddRow(new string[] {
- "30",
- "4",
- "Bike Racks",
- "6/1/2002 12:00:00 AM",
- "4624b5ce-66d6-496b-9201-c053df3556cc"});
- table467.AddRow(new string[] {
- "31",
- "4",
- "Bike Stands",
- "6/1/2002 12:00:00 AM",
- "43b445c8-b820-424e-a1d5-90d81da0b46f"});
- table467.AddRow(new string[] {
- "32",
- "4",
- "Bottles and Cages",
- "6/1/2002 12:00:00 AM",
- "9b7dff41-9fa3-4776-8def-2c9a48c8b779"});
- table467.AddRow(new string[] {
- "33",
- "4",
- "Cleaners",
- "6/1/2002 12:00:00 AM",
- "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"});
- table467.AddRow(new string[] {
- "34",
- "4",
- "Fenders",
- "6/1/2002 12:00:00 AM",
- "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"});
- table467.AddRow(new string[] {
- "35",
- "4",
- "Helmets",
- "6/1/2002 12:00:00 AM",
- "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"});
- table467.AddRow(new string[] {
- "36",
- "4",
- "Hydration Packs",
- "6/1/2002 12:00:00 AM",
- "646a8906-fc87-4267-a443-9c6d791e6693"});
- table467.AddRow(new string[] {
- "37",
- "4",
- "Lights",
- "6/1/2002 12:00:00 AM",
- "954178ba-624f-42db-95f6-ca035f36d130"});
- table467.AddRow(new string[] {
- "38",
- "4",
- "Locks",
- "6/1/2002 12:00:00 AM",
- "19646983-3fa0-4773-9a0c-f34c49df9bc8"});
- table467.AddRow(new string[] {
- "39",
- "4",
- "Panniers",
- "6/1/2002 12:00:00 AM",
- "3002a5d5-fec3-464b-bef3-e0f81d35f431"});
- table467.AddRow(new string[] {
- "40",
- "4",
- "Pumps",
- "6/1/2002 12:00:00 AM",
- "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"});
- table467.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table467.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 77
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table467, "And ");
+#line 92
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table450, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -707,7 +542,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500_Sort_ProductCategoryId", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 122
+#line 103
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -720,309 +555,91 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table468 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table451 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize",
"Sorting"});
- table468.AddRow(new string[] {
+ table451.AddRow(new string[] {
"0",
"500",
"ProductCategoryId"});
-#line 123
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table468, "When ");
+#line 104
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table451, "When ");
#line hidden
- global::Reqnroll.Table table469 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table452 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table469.AddRow(new string[] {
+ table452.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 126
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table469, "And ");
+#line 107
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table452, "And ");
#line hidden
- global::Reqnroll.Table table470 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table453 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table470.AddRow(new string[] {
+ table453.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 129
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table470, "Then ");
+#line 110
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table453, "Then ");
#line hidden
- global::Reqnroll.Table table471 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table454 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table471.AddRow(new string[] {
+ table454.AddRow(new string[] {
"1",
- "42",
+ "7",
"100",
"0"});
-#line 132
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table471, "And ");
+#line 113
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table454, "And ");
#line hidden
- global::Reqnroll.Table table472 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table455 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"1",
- "",
- "Bikes",
"6/1/2002 12:00:00 AM",
+ "Bikes",
"cfbda25c-df71-47a7-b81b-64ee161aa37c"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"2",
- "",
- "Components",
"6/1/2002 12:00:00 AM",
+ "Components",
"c657828d-d808-4aba-91a3-af2ce02300e9"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"3",
- "",
- "Clothing",
"6/1/2002 12:00:00 AM",
+ "Clothing",
"10a7c342-ca82-48d4-8a38-46a2eb089b74"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"4",
- "",
- "Accessories",
"6/1/2002 12:00:00 AM",
+ "Accessories",
"2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"5",
- "1",
- "Mountain Bikes",
"6/1/2002 12:00:00 AM",
+ "Mountain Bikes",
"2d364ade-264a-433c-b092-4fcbf3804e01"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"6",
- "1",
- "Road Bikes",
"6/1/2002 12:00:00 AM",
+ "Road Bikes",
"000310c0-bcc8-42c4-b0c3-45ae611af06b"});
- table472.AddRow(new string[] {
+ table455.AddRow(new string[] {
"7",
- "1",
- "Touring Bikes",
"6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
"02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
- table472.AddRow(new string[] {
- "8",
- "2",
- "Handlebars",
- "6/1/2002 12:00:00 AM",
- "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"});
- table472.AddRow(new string[] {
- "9",
- "2",
- "Bottom Brackets",
- "6/1/2002 12:00:00 AM",
- "a9e54089-8a1e-4cf5-8646-e3801f685934"});
- table472.AddRow(new string[] {
- "10",
- "2",
- "Brakes",
- "6/1/2002 12:00:00 AM",
- "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"});
- table472.AddRow(new string[] {
- "11",
- "2",
- "Chains",
- "6/1/2002 12:00:00 AM",
- "e93a7231-f16c-4b0f-8c41-c73fdec62da0"});
- table472.AddRow(new string[] {
- "12",
- "2",
- "Cranksets",
- "6/1/2002 12:00:00 AM",
- "4f644521-422b-4f19-974a-e3df6102567e"});
- table472.AddRow(new string[] {
- "13",
- "2",
- "Derailleurs",
- "6/1/2002 12:00:00 AM",
- "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"});
- table472.AddRow(new string[] {
- "14",
- "2",
- "Forks",
- "6/1/2002 12:00:00 AM",
- "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"});
- table472.AddRow(new string[] {
- "15",
- "2",
- "Headsets",
- "6/1/2002 12:00:00 AM",
- "7c782bbe-5a16-495a-aa50-10afe5a84af2"});
- table472.AddRow(new string[] {
- "16",
- "2",
- "Mountain Frames",
- "6/1/2002 12:00:00 AM",
- "61b21b65-e16a-4be7-9300-4d8e9db861be"});
- table472.AddRow(new string[] {
- "17",
- "2",
- "Pedals",
- "6/1/2002 12:00:00 AM",
- "6d24ac07-7a84-4849-864a-865a14125bc9"});
- table472.AddRow(new string[] {
- "18",
- "2",
- "Road Frames",
- "6/1/2002 12:00:00 AM",
- "5515f857-075b-4f9a-87b7-43b4997077b3"});
- table472.AddRow(new string[] {
- "19",
- "2",
- "Saddles",
- "6/1/2002 12:00:00 AM",
- "049fffa3-9d30-46df-82f7-f20730ec02b3"});
- table472.AddRow(new string[] {
- "20",
- "2",
- "Touring Frames",
- "6/1/2002 12:00:00 AM",
- "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"});
- table472.AddRow(new string[] {
- "21",
- "2",
- "Wheels",
- "6/1/2002 12:00:00 AM",
- "43521287-4b0b-438e-b80e-d82d9ad7c9f0"});
- table472.AddRow(new string[] {
- "22",
- "3",
- "Bib-Shorts",
- "6/1/2002 12:00:00 AM",
- "67b58d2b-5798-4a90-8c6c-5ddacf057171"});
- table472.AddRow(new string[] {
- "23",
- "3",
- "Caps",
- "6/1/2002 12:00:00 AM",
- "430dd6a8-a755-4b23-bb05-52520107da5f"});
- table472.AddRow(new string[] {
- "24",
- "3",
- "Gloves",
- "6/1/2002 12:00:00 AM",
- "92d5657b-0032-4e49-bad5-41a441a70942"});
- table472.AddRow(new string[] {
- "25",
- "3",
- "Jerseys",
- "6/1/2002 12:00:00 AM",
- "09e91437-ba4f-4b1a-8215-74184fd95db8"});
- table472.AddRow(new string[] {
- "26",
- "3",
- "Shorts",
- "6/1/2002 12:00:00 AM",
- "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"});
- table472.AddRow(new string[] {
- "27",
- "3",
- "Socks",
- "6/1/2002 12:00:00 AM",
- "701019c3-09fe-4949-8386-c6ce686474e5"});
- table472.AddRow(new string[] {
- "28",
- "3",
- "Tights",
- "6/1/2002 12:00:00 AM",
- "5deb3e55-9897-4416-b18a-515e970bc2d1"});
- table472.AddRow(new string[] {
- "29",
- "3",
- "Vests",
- "6/1/2002 12:00:00 AM",
- "9ad7fe93-5ba0-4736-b578-ff80a2071297"});
- table472.AddRow(new string[] {
- "30",
- "4",
- "Bike Racks",
- "6/1/2002 12:00:00 AM",
- "4624b5ce-66d6-496b-9201-c053df3556cc"});
- table472.AddRow(new string[] {
- "31",
- "4",
- "Bike Stands",
- "6/1/2002 12:00:00 AM",
- "43b445c8-b820-424e-a1d5-90d81da0b46f"});
- table472.AddRow(new string[] {
- "32",
- "4",
- "Bottles and Cages",
- "6/1/2002 12:00:00 AM",
- "9b7dff41-9fa3-4776-8def-2c9a48c8b779"});
- table472.AddRow(new string[] {
- "33",
- "4",
- "Cleaners",
- "6/1/2002 12:00:00 AM",
- "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"});
- table472.AddRow(new string[] {
- "34",
- "4",
- "Fenders",
- "6/1/2002 12:00:00 AM",
- "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"});
- table472.AddRow(new string[] {
- "35",
- "4",
- "Helmets",
- "6/1/2002 12:00:00 AM",
- "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"});
- table472.AddRow(new string[] {
- "36",
- "4",
- "Hydration Packs",
- "6/1/2002 12:00:00 AM",
- "646a8906-fc87-4267-a443-9c6d791e6693"});
- table472.AddRow(new string[] {
- "37",
- "4",
- "Lights",
- "6/1/2002 12:00:00 AM",
- "954178ba-624f-42db-95f6-ca035f36d130"});
- table472.AddRow(new string[] {
- "38",
- "4",
- "Locks",
- "6/1/2002 12:00:00 AM",
- "19646983-3fa0-4773-9a0c-f34c49df9bc8"});
- table472.AddRow(new string[] {
- "39",
- "4",
- "Panniers",
- "6/1/2002 12:00:00 AM",
- "3002a5d5-fec3-464b-bef3-e0f81d35f431"});
- table472.AddRow(new string[] {
- "40",
- "4",
- "Pumps",
- "6/1/2002 12:00:00 AM",
- "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"});
- table472.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table472.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 135
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table472, "And ");
+#line 116
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table455, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -1036,7 +653,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500_Sort_ProductCategoryIdDesc", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 181
+#line 127
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -1049,309 +666,91 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table473 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table456 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize",
"Sorting"});
- table473.AddRow(new string[] {
+ table456.AddRow(new string[] {
"0",
"500",
"ProductCategoryId DESC"});
-#line 182
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table473, "When ");
+#line 128
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table456, "When ");
#line hidden
- global::Reqnroll.Table table474 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table457 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table474.AddRow(new string[] {
+ table457.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 185
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table474, "And ");
+#line 131
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table457, "And ");
#line hidden
- global::Reqnroll.Table table475 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table458 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table475.AddRow(new string[] {
+ table458.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 188
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table475, "Then ");
+#line 134
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table458, "Then ");
#line hidden
- global::Reqnroll.Table table476 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table459 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table476.AddRow(new string[] {
+ table459.AddRow(new string[] {
"1",
- "42",
+ "7",
"100",
"0"});
-#line 191
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table476, "And ");
+#line 137
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table459, "And ");
#line hidden
- global::Reqnroll.Table table477 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table460 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table477.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
- table477.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table460.AddRow(new string[] {
+ "7",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table477.AddRow(new string[] {
- "40",
- "4",
- "Pumps",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+ table460.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"});
- table477.AddRow(new string[] {
- "39",
- "4",
- "Panniers",
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table460.AddRow(new string[] {
+ "5",
"6/1/2002 12:00:00 AM",
- "3002a5d5-fec3-464b-bef3-e0f81d35f431"});
- table477.AddRow(new string[] {
- "38",
+ "Mountain Bikes",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+ table460.AddRow(new string[] {
"4",
- "Locks",
"6/1/2002 12:00:00 AM",
- "19646983-3fa0-4773-9a0c-f34c49df9bc8"});
- table477.AddRow(new string[] {
- "37",
- "4",
- "Lights",
- "6/1/2002 12:00:00 AM",
- "954178ba-624f-42db-95f6-ca035f36d130"});
- table477.AddRow(new string[] {
- "36",
- "4",
- "Hydration Packs",
- "6/1/2002 12:00:00 AM",
- "646a8906-fc87-4267-a443-9c6d791e6693"});
- table477.AddRow(new string[] {
- "35",
- "4",
- "Helmets",
- "6/1/2002 12:00:00 AM",
- "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"});
- table477.AddRow(new string[] {
- "34",
- "4",
- "Fenders",
- "6/1/2002 12:00:00 AM",
- "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"});
- table477.AddRow(new string[] {
- "33",
- "4",
- "Cleaners",
- "6/1/2002 12:00:00 AM",
- "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"});
- table477.AddRow(new string[] {
- "32",
- "4",
- "Bottles and Cages",
- "6/1/2002 12:00:00 AM",
- "9b7dff41-9fa3-4776-8def-2c9a48c8b779"});
- table477.AddRow(new string[] {
- "31",
- "4",
- "Bike Stands",
- "6/1/2002 12:00:00 AM",
- "43b445c8-b820-424e-a1d5-90d81da0b46f"});
- table477.AddRow(new string[] {
- "30",
- "4",
- "Bike Racks",
- "6/1/2002 12:00:00 AM",
- "4624b5ce-66d6-496b-9201-c053df3556cc"});
- table477.AddRow(new string[] {
- "29",
- "3",
- "Vests",
- "6/1/2002 12:00:00 AM",
- "9ad7fe93-5ba0-4736-b578-ff80a2071297"});
- table477.AddRow(new string[] {
- "28",
- "3",
- "Tights",
- "6/1/2002 12:00:00 AM",
- "5deb3e55-9897-4416-b18a-515e970bc2d1"});
- table477.AddRow(new string[] {
- "27",
- "3",
- "Socks",
- "6/1/2002 12:00:00 AM",
- "701019c3-09fe-4949-8386-c6ce686474e5"});
- table477.AddRow(new string[] {
- "26",
- "3",
- "Shorts",
- "6/1/2002 12:00:00 AM",
- "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"});
- table477.AddRow(new string[] {
- "25",
- "3",
- "Jerseys",
- "6/1/2002 12:00:00 AM",
- "09e91437-ba4f-4b1a-8215-74184fd95db8"});
- table477.AddRow(new string[] {
- "24",
- "3",
- "Gloves",
- "6/1/2002 12:00:00 AM",
- "92d5657b-0032-4e49-bad5-41a441a70942"});
- table477.AddRow(new string[] {
- "23",
- "3",
- "Caps",
- "6/1/2002 12:00:00 AM",
- "430dd6a8-a755-4b23-bb05-52520107da5f"});
- table477.AddRow(new string[] {
- "22",
- "3",
- "Bib-Shorts",
- "6/1/2002 12:00:00 AM",
- "67b58d2b-5798-4a90-8c6c-5ddacf057171"});
- table477.AddRow(new string[] {
- "21",
- "2",
- "Wheels",
- "6/1/2002 12:00:00 AM",
- "43521287-4b0b-438e-b80e-d82d9ad7c9f0"});
- table477.AddRow(new string[] {
- "20",
- "2",
- "Touring Frames",
- "6/1/2002 12:00:00 AM",
- "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"});
- table477.AddRow(new string[] {
- "19",
- "2",
- "Saddles",
- "6/1/2002 12:00:00 AM",
- "049fffa3-9d30-46df-82f7-f20730ec02b3"});
- table477.AddRow(new string[] {
- "18",
- "2",
- "Road Frames",
- "6/1/2002 12:00:00 AM",
- "5515f857-075b-4f9a-87b7-43b4997077b3"});
- table477.AddRow(new string[] {
- "17",
- "2",
- "Pedals",
- "6/1/2002 12:00:00 AM",
- "6d24ac07-7a84-4849-864a-865a14125bc9"});
- table477.AddRow(new string[] {
- "16",
- "2",
- "Mountain Frames",
- "6/1/2002 12:00:00 AM",
- "61b21b65-e16a-4be7-9300-4d8e9db861be"});
- table477.AddRow(new string[] {
- "15",
- "2",
- "Headsets",
- "6/1/2002 12:00:00 AM",
- "7c782bbe-5a16-495a-aa50-10afe5a84af2"});
- table477.AddRow(new string[] {
- "14",
- "2",
- "Forks",
- "6/1/2002 12:00:00 AM",
- "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"});
- table477.AddRow(new string[] {
- "13",
- "2",
- "Derailleurs",
- "6/1/2002 12:00:00 AM",
- "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"});
- table477.AddRow(new string[] {
- "12",
- "2",
- "Cranksets",
- "6/1/2002 12:00:00 AM",
- "4f644521-422b-4f19-974a-e3df6102567e"});
- table477.AddRow(new string[] {
- "11",
- "2",
- "Chains",
- "6/1/2002 12:00:00 AM",
- "e93a7231-f16c-4b0f-8c41-c73fdec62da0"});
- table477.AddRow(new string[] {
- "10",
- "2",
- "Brakes",
- "6/1/2002 12:00:00 AM",
- "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"});
- table477.AddRow(new string[] {
- "9",
- "2",
- "Bottom Brackets",
- "6/1/2002 12:00:00 AM",
- "a9e54089-8a1e-4cf5-8646-e3801f685934"});
- table477.AddRow(new string[] {
- "8",
- "2",
- "Handlebars",
- "6/1/2002 12:00:00 AM",
- "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"});
- table477.AddRow(new string[] {
- "7",
- "1",
- "Touring Bikes",
- "6/1/2002 12:00:00 AM",
- "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
- table477.AddRow(new string[] {
- "6",
- "1",
- "Road Bikes",
- "6/1/2002 12:00:00 AM",
- "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
- table477.AddRow(new string[] {
- "5",
- "1",
- "Mountain Bikes",
- "6/1/2002 12:00:00 AM",
- "2d364ade-264a-433c-b092-4fcbf3804e01"});
- table477.AddRow(new string[] {
- "4",
- "",
"Accessories",
- "6/1/2002 12:00:00 AM",
"2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
- table477.AddRow(new string[] {
+ table460.AddRow(new string[] {
"3",
- "",
- "Clothing",
"6/1/2002 12:00:00 AM",
+ "Clothing",
"10a7c342-ca82-48d4-8a38-46a2eb089b74"});
- table477.AddRow(new string[] {
+ table460.AddRow(new string[] {
"2",
- "",
- "Components",
"6/1/2002 12:00:00 AM",
+ "Components",
"c657828d-d808-4aba-91a3-af2ce02300e9"});
- table477.AddRow(new string[] {
+ table460.AddRow(new string[] {
"1",
- "",
- "Bikes",
"6/1/2002 12:00:00 AM",
+ "Bikes",
"cfbda25c-df71-47a7-b81b-64ee161aa37c"});
-#line 194
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table477, "And ");
+#line 140
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table460, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -1365,7 +764,7 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_500_Sort_ProductCategoryIdASC", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 240
+#line 151
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -1378,323 +777,105 @@ public async System.Threading.Tasks.Task FindAllAsync_0_500_Sort_ProductCategory
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table478 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table461 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize",
"Sorting"});
- table478.AddRow(new string[] {
+ table461.AddRow(new string[] {
"0",
"500",
"ProductCategoryId ASC"});
-#line 241
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table478, "When ");
+#line 152
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table461, "When ");
#line hidden
- global::Reqnroll.Table table479 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table462 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table479.AddRow(new string[] {
+ table462.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 244
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table479, "And ");
+#line 155
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table462, "And ");
#line hidden
- global::Reqnroll.Table table480 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table463 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table480.AddRow(new string[] {
+ table463.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 247
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table480, "Then ");
+#line 158
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table463, "Then ");
#line hidden
- global::Reqnroll.Table table481 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table464 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table481.AddRow(new string[] {
+ table464.AddRow(new string[] {
"1",
- "42",
+ "7",
"100",
"0"});
-#line 250
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table481, "And ");
+#line 161
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table464, "And ");
#line hidden
- global::Reqnroll.Table table482 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table465 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"1",
- "",
- "Bikes",
"6/1/2002 12:00:00 AM",
+ "Bikes",
"cfbda25c-df71-47a7-b81b-64ee161aa37c"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"2",
- "",
- "Components",
"6/1/2002 12:00:00 AM",
+ "Components",
"c657828d-d808-4aba-91a3-af2ce02300e9"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"3",
- "",
- "Clothing",
"6/1/2002 12:00:00 AM",
+ "Clothing",
"10a7c342-ca82-48d4-8a38-46a2eb089b74"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"4",
- "",
- "Accessories",
"6/1/2002 12:00:00 AM",
+ "Accessories",
"2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"5",
- "1",
- "Mountain Bikes",
"6/1/2002 12:00:00 AM",
+ "Mountain Bikes",
"2d364ade-264a-433c-b092-4fcbf3804e01"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"6",
- "1",
- "Road Bikes",
"6/1/2002 12:00:00 AM",
+ "Road Bikes",
"000310c0-bcc8-42c4-b0c3-45ae611af06b"});
- table482.AddRow(new string[] {
+ table465.AddRow(new string[] {
"7",
- "1",
- "Touring Bikes",
"6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
"02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
- table482.AddRow(new string[] {
- "8",
- "2",
- "Handlebars",
- "6/1/2002 12:00:00 AM",
- "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"});
- table482.AddRow(new string[] {
- "9",
- "2",
- "Bottom Brackets",
- "6/1/2002 12:00:00 AM",
- "a9e54089-8a1e-4cf5-8646-e3801f685934"});
- table482.AddRow(new string[] {
- "10",
- "2",
- "Brakes",
- "6/1/2002 12:00:00 AM",
- "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"});
- table482.AddRow(new string[] {
- "11",
- "2",
- "Chains",
- "6/1/2002 12:00:00 AM",
- "e93a7231-f16c-4b0f-8c41-c73fdec62da0"});
- table482.AddRow(new string[] {
- "12",
- "2",
- "Cranksets",
- "6/1/2002 12:00:00 AM",
- "4f644521-422b-4f19-974a-e3df6102567e"});
- table482.AddRow(new string[] {
- "13",
- "2",
- "Derailleurs",
- "6/1/2002 12:00:00 AM",
- "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"});
- table482.AddRow(new string[] {
- "14",
- "2",
- "Forks",
- "6/1/2002 12:00:00 AM",
- "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"});
- table482.AddRow(new string[] {
- "15",
- "2",
- "Headsets",
- "6/1/2002 12:00:00 AM",
- "7c782bbe-5a16-495a-aa50-10afe5a84af2"});
- table482.AddRow(new string[] {
- "16",
- "2",
- "Mountain Frames",
- "6/1/2002 12:00:00 AM",
- "61b21b65-e16a-4be7-9300-4d8e9db861be"});
- table482.AddRow(new string[] {
- "17",
- "2",
- "Pedals",
- "6/1/2002 12:00:00 AM",
- "6d24ac07-7a84-4849-864a-865a14125bc9"});
- table482.AddRow(new string[] {
- "18",
- "2",
- "Road Frames",
- "6/1/2002 12:00:00 AM",
- "5515f857-075b-4f9a-87b7-43b4997077b3"});
- table482.AddRow(new string[] {
- "19",
- "2",
- "Saddles",
- "6/1/2002 12:00:00 AM",
- "049fffa3-9d30-46df-82f7-f20730ec02b3"});
- table482.AddRow(new string[] {
- "20",
- "2",
- "Touring Frames",
- "6/1/2002 12:00:00 AM",
- "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"});
- table482.AddRow(new string[] {
- "21",
- "2",
- "Wheels",
- "6/1/2002 12:00:00 AM",
- "43521287-4b0b-438e-b80e-d82d9ad7c9f0"});
- table482.AddRow(new string[] {
- "22",
- "3",
- "Bib-Shorts",
- "6/1/2002 12:00:00 AM",
- "67b58d2b-5798-4a90-8c6c-5ddacf057171"});
- table482.AddRow(new string[] {
- "23",
- "3",
- "Caps",
- "6/1/2002 12:00:00 AM",
- "430dd6a8-a755-4b23-bb05-52520107da5f"});
- table482.AddRow(new string[] {
- "24",
- "3",
- "Gloves",
- "6/1/2002 12:00:00 AM",
- "92d5657b-0032-4e49-bad5-41a441a70942"});
- table482.AddRow(new string[] {
- "25",
- "3",
- "Jerseys",
- "6/1/2002 12:00:00 AM",
- "09e91437-ba4f-4b1a-8215-74184fd95db8"});
- table482.AddRow(new string[] {
- "26",
- "3",
- "Shorts",
- "6/1/2002 12:00:00 AM",
- "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"});
- table482.AddRow(new string[] {
- "27",
- "3",
- "Socks",
- "6/1/2002 12:00:00 AM",
- "701019c3-09fe-4949-8386-c6ce686474e5"});
- table482.AddRow(new string[] {
- "28",
- "3",
- "Tights",
- "6/1/2002 12:00:00 AM",
- "5deb3e55-9897-4416-b18a-515e970bc2d1"});
- table482.AddRow(new string[] {
- "29",
- "3",
- "Vests",
- "6/1/2002 12:00:00 AM",
- "9ad7fe93-5ba0-4736-b578-ff80a2071297"});
- table482.AddRow(new string[] {
- "30",
- "4",
- "Bike Racks",
- "6/1/2002 12:00:00 AM",
- "4624b5ce-66d6-496b-9201-c053df3556cc"});
- table482.AddRow(new string[] {
- "31",
- "4",
- "Bike Stands",
- "6/1/2002 12:00:00 AM",
- "43b445c8-b820-424e-a1d5-90d81da0b46f"});
- table482.AddRow(new string[] {
- "32",
- "4",
- "Bottles and Cages",
- "6/1/2002 12:00:00 AM",
- "9b7dff41-9fa3-4776-8def-2c9a48c8b779"});
- table482.AddRow(new string[] {
- "33",
- "4",
- "Cleaners",
- "6/1/2002 12:00:00 AM",
- "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"});
- table482.AddRow(new string[] {
- "34",
- "4",
- "Fenders",
- "6/1/2002 12:00:00 AM",
- "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"});
- table482.AddRow(new string[] {
- "35",
- "4",
- "Helmets",
- "6/1/2002 12:00:00 AM",
- "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"});
- table482.AddRow(new string[] {
- "36",
- "4",
- "Hydration Packs",
- "6/1/2002 12:00:00 AM",
- "646a8906-fc87-4267-a443-9c6d791e6693"});
- table482.AddRow(new string[] {
- "37",
- "4",
- "Lights",
- "6/1/2002 12:00:00 AM",
- "954178ba-624f-42db-95f6-ca035f36d130"});
- table482.AddRow(new string[] {
- "38",
- "4",
- "Locks",
- "6/1/2002 12:00:00 AM",
- "19646983-3fa0-4773-9a0c-f34c49df9bc8"});
- table482.AddRow(new string[] {
- "39",
- "4",
- "Panniers",
- "6/1/2002 12:00:00 AM",
- "3002a5d5-fec3-464b-bef3-e0f81d35f431"});
- table482.AddRow(new string[] {
- "40",
- "4",
- "Pumps",
- "6/1/2002 12:00:00 AM",
- "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"});
- table482.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table482.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 253
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table482, "And ");
+#line 164
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table465, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_5")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAsync1234")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAllAsync_2_5()
+ public async System.Threading.Tasks.Task FindAsync1234()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 297
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAsync1234", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 174
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -1707,99 +888,40 @@ public async System.Threading.Tasks.Task FindAllAsync_2_5()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table483 = new global::Reqnroll.Table(new string[] {
- "PageNumber",
- "PageSize"});
- table483.AddRow(new string[] {
- "2",
- "5"});
-#line 298
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table483, "When ");
-#line hidden
- global::Reqnroll.Table table484 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table466 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table484.AddRow(new string[] {
- "pageingFilter",
- "{{model}}",
- "AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 301
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table484, "And ");
+ table466.AddRow(new string[] {
+ "productCategoryId",
+ "1234",
+ "int"});
+#line 175
+ await testRunner.WhenAsync("I call the method \'FindAsync\' with the parameter values", ((string)(null)), table466, "When ");
#line hidden
- global::Reqnroll.Table table485 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table467 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table485.AddRow(new string[] {
- "AdventureWorksDemo.Data.Paging.PagedList"});
-#line 304
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table485, "Then ");
-#line hidden
- global::Reqnroll.Table table486 = new global::Reqnroll.Table(new string[] {
- "TotalPages",
- "TotalCount",
- "PageSize",
- "CurrentPage"});
- table486.AddRow(new string[] {
- "9",
- "42",
- "5",
- "2"});
-#line 307
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table486, "And ");
+ table467.AddRow(new string[] {
+ "AdventureWorksDemo.Data.Models.ProductCategoryModel"});
+#line 179
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table467, "Then ");
#line hidden
- global::Reqnroll.Table table487 = new global::Reqnroll.Table(new string[] {
- "ModifiedDate",
- "Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
- "Rowguid"});
- table487.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Chains",
- "2",
- "11",
- "e93a7231-f16c-4b0f-8c41-c73fdec62da0"});
- table487.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Cranksets",
- "2",
- "12",
- "4f644521-422b-4f19-974a-e3df6102567e"});
- table487.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Derailleurs",
- "2",
- "13",
- "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"});
- table487.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Forks",
- "2",
- "14",
- "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"});
- table487.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Headsets",
- "2",
- "15",
- "7c782bbe-5a16-495a-aa50-10afe5a84af2"});
-#line 310
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table487, "And ");
+#line 182
+ await testRunner.AndAsync("the result is null", ((string)(null)), ((global::Reqnroll.Table)(null)), "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_8")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1_5")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAllAsync_2_8()
+ public async System.Threading.Tasks.Task FindAllAsync_1_5()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_8", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 318
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 184
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -1812,117 +934,78 @@ public async System.Threading.Tasks.Task FindAllAsync_2_8()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table488 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table468 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table488.AddRow(new string[] {
- "2",
- "8"});
-#line 319
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table488, "When ");
+ table468.AddRow(new string[] {
+ "1",
+ "5"});
+#line 185
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table468, "When ");
#line hidden
- global::Reqnroll.Table table489 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table469 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table489.AddRow(new string[] {
+ table469.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 322
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table489, "And ");
+#line 188
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table469, "And ");
#line hidden
- global::Reqnroll.Table table490 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table470 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table490.AddRow(new string[] {
+ table470.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 325
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table490, "Then ");
+#line 191
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table470, "Then ");
#line hidden
- global::Reqnroll.Table table491 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table471 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table491.AddRow(new string[] {
- "6",
- "42",
- "8",
- "2"});
-#line 328
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table491, "And ");
+ table471.AddRow(new string[] {
+ "2",
+ "7",
+ "5",
+ "1"});
+#line 194
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table471, "And ");
#line hidden
- global::Reqnroll.Table table492 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table472 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table492.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Pedals",
- "2",
- "17",
- "6d24ac07-7a84-4849-864a-865a14125bc9"});
- table492.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Road Frames",
- "2",
- "18",
- "5515f857-075b-4f9a-87b7-43b4997077b3"});
- table492.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Saddles",
- "2",
- "19",
- "049fffa3-9d30-46df-82f7-f20730ec02b3"});
- table492.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Touring Frames",
- "2",
- "20",
- "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"});
- table492.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Wheels",
- "2",
- "21",
- "43521287-4b0b-438e-b80e-d82d9ad7c9f0"});
- table492.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bib-Shorts",
- "3",
- "22",
- "67b58d2b-5798-4a90-8c6c-5ddacf057171"});
- table492.AddRow(new string[] {
+ table472.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "Caps",
- "3",
- "23",
- "430dd6a8-a755-4b23-bb05-52520107da5f"});
- table492.AddRow(new string[] {
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table472.AddRow(new string[] {
+ "7",
"6/1/2002 12:00:00 AM",
- "Gloves",
- "3",
- "24",
- "92d5657b-0032-4e49-bad5-41a441a70942"});
-#line 331
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table492, "And ");
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 197
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table472, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1234_5")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_5")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAllAsync_1234_5()
+ public async System.Threading.Tasks.Task FindAllAsync_2_5()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1234_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 342
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 202
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -1935,81 +1018,78 @@ public async System.Threading.Tasks.Task FindAllAsync_1234_5()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table493 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table473 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table493.AddRow(new string[] {
- "1234",
+ table473.AddRow(new string[] {
+ "2",
"5"});
-#line 343
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table493, "When ");
+#line 203
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table473, "When ");
#line hidden
- global::Reqnroll.Table table494 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table474 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table494.AddRow(new string[] {
+ table474.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 346
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table494, "And ");
+#line 206
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table474, "And ");
#line hidden
- global::Reqnroll.Table table495 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table475 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table495.AddRow(new string[] {
+ table475.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 349
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table495, "Then ");
+#line 209
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table475, "Then ");
#line hidden
- global::Reqnroll.Table table496 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table476 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table496.AddRow(new string[] {
- "9",
- "42",
+ table476.AddRow(new string[] {
+ "2",
+ "7",
"5",
- "8"});
-#line 352
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table496, "And ");
+ "1"});
+#line 212
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table476, "And ");
#line hidden
- global::Reqnroll.Table table497 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table477 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table497.AddRow(new string[] {
+ table477.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "Tires and Tubes",
- "4",
- "41",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table497.AddRow(new string[] {
- "6/1/2005 12:00:00 AM",
- "Record to Delete",
- "",
- "42",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 355
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table497, "And ");
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table477.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 215
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table477, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_5")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_2_8")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAllAsync_0_5()
+ public async System.Threading.Tasks.Task FindAllAsync_2_8()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 360
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_2_8", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 220
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -2022,99 +1102,103 @@ public async System.Threading.Tasks.Task FindAllAsync_0_5()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table498 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table478 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table498.AddRow(new string[] {
- "0",
- "5"});
-#line 361
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table498, "When ");
+ table478.AddRow(new string[] {
+ "2",
+ "8"});
+#line 221
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table478, "When ");
#line hidden
- global::Reqnroll.Table table499 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table479 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table499.AddRow(new string[] {
+ table479.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 364
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table499, "And ");
+#line 224
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table479, "And ");
#line hidden
- global::Reqnroll.Table table500 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table480 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table500.AddRow(new string[] {
+ table480.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 367
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table500, "Then ");
+#line 227
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table480, "Then ");
#line hidden
- global::Reqnroll.Table table501 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table481 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table501.AddRow(new string[] {
- "9",
- "42",
- "5",
+ table481.AddRow(new string[] {
+ "1",
+ "7",
+ "8",
"0"});
-#line 371
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table501, "And ");
+#line 230
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table481, "And ");
#line hidden
- global::Reqnroll.Table table502 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table482 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table502.AddRow(new string[] {
+ table482.AddRow(new string[] {
+ "1",
"6/1/2002 12:00:00 AM",
"Bikes",
- "",
- "1",
"cfbda25c-df71-47a7-b81b-64ee161aa37c"});
- table502.AddRow(new string[] {
+ table482.AddRow(new string[] {
+ "2",
"6/1/2002 12:00:00 AM",
"Components",
- "",
- "2",
"c657828d-d808-4aba-91a3-af2ce02300e9"});
- table502.AddRow(new string[] {
+ table482.AddRow(new string[] {
+ "3",
"6/1/2002 12:00:00 AM",
"Clothing",
- "",
- "3",
"10a7c342-ca82-48d4-8a38-46a2eb089b74"});
- table502.AddRow(new string[] {
+ table482.AddRow(new string[] {
+ "4",
"6/1/2002 12:00:00 AM",
"Accessories",
- "",
- "4",
"2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
- table502.AddRow(new string[] {
+ table482.AddRow(new string[] {
+ "5",
"6/1/2002 12:00:00 AM",
"Mountain Bikes",
- "1",
- "5",
"2d364ade-264a-433c-b092-4fcbf3804e01"});
-#line 374
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table502, "And ");
+ table482.AddRow(new string[] {
+ "6",
+ "6/1/2002 12:00:00 AM",
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table482.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 233
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table482, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_0_0")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("FindAllAsync_1234_5")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceFindTests")]
- public async System.Threading.Tasks.Task FindAllAsync_0_0()
+ public async System.Threading.Tasks.Task FindAllAsync_1234_5()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_0_0", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 382
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_1234_5", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 243
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -2127,205 +1211,64 @@ public async System.Threading.Tasks.Task FindAllAsync_0_0()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table503 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table483 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table503.AddRow(new string[] {
- "0",
- "0"});
-#line 383
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table503, "When ");
+ table483.AddRow(new string[] {
+ "1234",
+ "5"});
+#line 244
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table483, "When ");
#line hidden
- global::Reqnroll.Table table504 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table484 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table504.AddRow(new string[] {
+ table484.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 386
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table504, "And ");
+#line 247
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table484, "And ");
#line hidden
- global::Reqnroll.Table table505 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table485 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table505.AddRow(new string[] {
+ table485.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 389
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table505, "Then ");
+#line 250
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table485, "Then ");
#line hidden
- global::Reqnroll.Table table506 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table486 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table506.AddRow(new string[] {
+ table486.AddRow(new string[] {
"2",
- "42",
- "25",
- "0"});
-#line 393
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table506, "And ");
+ "7",
+ "5",
+ "1"});
+#line 253
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table486, "And ");
#line hidden
- global::Reqnroll.Table table507 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table487 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bikes",
- "",
- "1",
- "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Components",
- "",
- "2",
- "c657828d-d808-4aba-91a3-af2ce02300e9"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Clothing",
- "",
- "3",
- "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Accessories",
- "",
- "4",
- "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Mountain Bikes",
- "1",
- "5",
- "2d364ade-264a-433c-b092-4fcbf3804e01"});
- table507.AddRow(new string[] {
+ table487.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
"Road Bikes",
- "1",
- "6",
"000310c0-bcc8-42c4-b0c3-45ae611af06b"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Touring Bikes",
- "1",
+ table487.AddRow(new string[] {
"7",
- "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Handlebars",
- "2",
- "8",
- "3ef2c725-7135-4c85-9ae6-ae9a3bdd9283"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bottom Brackets",
- "2",
- "9",
- "a9e54089-8a1e-4cf5-8646-e3801f685934"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Brakes",
- "2",
- "10",
- "d43ba4a3-ef0d-426b-90eb-4be4547dd30c"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Chains",
- "2",
- "11",
- "e93a7231-f16c-4b0f-8c41-c73fdec62da0"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Cranksets",
- "2",
- "12",
- "4f644521-422b-4f19-974a-e3df6102567e"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Derailleurs",
- "2",
- "13",
- "1830d70c-aa2a-40c0-a271-5ba86f38f8bf"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Forks",
- "2",
- "14",
- "b5f9ba42-b69b-4fdd-b2ec-57fb7b42e3cf"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Headsets",
- "2",
- "15",
- "7c782bbe-5a16-495a-aa50-10afe5a84af2"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Mountain Frames",
- "2",
- "16",
- "61b21b65-e16a-4be7-9300-4d8e9db861be"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Pedals",
- "2",
- "17",
- "6d24ac07-7a84-4849-864a-865a14125bc9"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Road Frames",
- "2",
- "18",
- "5515f857-075b-4f9a-87b7-43b4997077b3"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Saddles",
- "2",
- "19",
- "049fffa3-9d30-46df-82f7-f20730ec02b3"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Touring Frames",
- "2",
- "20",
- "d2e3f1a8-56c4-4f36-b29d-5659fc0d2789"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Wheels",
- "2",
- "21",
- "43521287-4b0b-438e-b80e-d82d9ad7c9f0"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bib-Shorts",
- "3",
- "22",
- "67b58d2b-5798-4a90-8c6c-5ddacf057171"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Caps",
- "3",
- "23",
- "430dd6a8-a755-4b23-bb05-52520107da5f"});
- table507.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Gloves",
- "3",
- "24",
- "92d5657b-0032-4e49-bad5-41a441a70942"});
- table507.AddRow(new string[] {
"6/1/2002 12:00:00 AM",
- "Jerseys",
- "3",
- "25",
- "09e91437-ba4f-4b1a-8215-74184fd95db8"});
-#line 396
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table507, "And ");
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 256
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table487, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -2339,7 +1282,7 @@ public async System.Threading.Tasks.Task FindAllAsync_5_0()
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FindAllAsync_5_0", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 424
+#line 261
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -2352,157 +1295,89 @@ public async System.Threading.Tasks.Task FindAllAsync_5_0()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table508 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table488 = new global::Reqnroll.Table(new string[] {
"PageNumber",
"PageSize"});
- table508.AddRow(new string[] {
+ table488.AddRow(new string[] {
"5",
"0"});
-#line 425
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table508, "When ");
+#line 262
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Paging.PagingFilter\'", ((string)(null)), table488, "When ");
#line hidden
- global::Reqnroll.Table table509 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table489 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table509.AddRow(new string[] {
+ table489.AddRow(new string[] {
"pageingFilter",
"{{model}}",
"AdventureWorksDemo.Data.Paging.PagingFilter"});
-#line 428
- await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table509, "And ");
+#line 265
+ await testRunner.AndAsync("I call the method \'FindAllAsync\' with the parameter values", ((string)(null)), table489, "And ");
#line hidden
- global::Reqnroll.Table table510 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table490 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table510.AddRow(new string[] {
+ table490.AddRow(new string[] {
"AdventureWorksDemo.Data.Paging.PagedList"});
-#line 431
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table510, "Then ");
+#line 268
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table490, "Then ");
#line hidden
- global::Reqnroll.Table table511 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table491 = new global::Reqnroll.Table(new string[] {
"TotalPages",
"TotalCount",
"PageSize",
"CurrentPage"});
- table511.AddRow(new string[] {
- "2",
- "42",
+ table491.AddRow(new string[] {
+ "1",
+ "7",
"25",
- "1"});
-#line 435
- await testRunner.AndAsync("the PagedList values are", ((string)(null)), table511, "And ");
+ "0"});
+#line 272
+ await testRunner.AndAsync("the PagedList values are", ((string)(null)), table491, "And ");
#line hidden
- global::Reqnroll.Table table512 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table492 = new global::Reqnroll.Table(new string[] {
+ "ProductCategoryId",
"ModifiedDate",
"Name",
- "ParentProductCategoryId",
- "ProductCategoryId",
"Rowguid"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Shorts",
- "3",
- "26",
- "1a5ba5b3-03c3-457c-b11e-4fa85ede87da"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Socks",
- "3",
- "27",
- "701019c3-09fe-4949-8386-c6ce686474e5"});
- table512.AddRow(new string[] {
+ table492.AddRow(new string[] {
+ "1",
"6/1/2002 12:00:00 AM",
- "Tights",
- "3",
- "28",
- "5deb3e55-9897-4416-b18a-515e970bc2d1"});
- table512.AddRow(new string[] {
+ "Bikes",
+ "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
+ table492.AddRow(new string[] {
+ "2",
"6/1/2002 12:00:00 AM",
- "Vests",
+ "Components",
+ "c657828d-d808-4aba-91a3-af2ce02300e9"});
+ table492.AddRow(new string[] {
"3",
- "29",
- "9ad7fe93-5ba0-4736-b578-ff80a2071297"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bike Racks",
- "4",
- "30",
- "4624b5ce-66d6-496b-9201-c053df3556cc"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bike Stands",
- "4",
- "31",
- "43b445c8-b820-424e-a1d5-90d81da0b46f"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Bottles and Cages",
- "4",
- "32",
- "9b7dff41-9fa3-4776-8def-2c9a48c8b779"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Cleaners",
- "4",
- "33",
- "9ad3bcf0-244d-4ec4-a6a0-fb701351c6a3"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Fenders",
- "4",
- "34",
- "1697f8a2-0a08-4883-b7dd-d19117b4e9a7"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Helmets",
- "4",
- "35",
- "f5e07a33-c9e0-439c-b5f3-9f25fb65becc"});
- table512.AddRow(new string[] {
- "6/1/2002 12:00:00 AM",
- "Hydration Packs",
- "4",
- "36",
- "646a8906-fc87-4267-a443-9c6d791e6693"});
- table512.AddRow(new string[] {
"6/1/2002 12:00:00 AM",
- "Lights",
+ "Clothing",
+ "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
+ table492.AddRow(new string[] {
"4",
- "37",
- "954178ba-624f-42db-95f6-ca035f36d130"});
- table512.AddRow(new string[] {
"6/1/2002 12:00:00 AM",
- "Locks",
- "4",
- "38",
- "19646983-3fa0-4773-9a0c-f34c49df9bc8"});
- table512.AddRow(new string[] {
+ "Accessories",
+ "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
+ table492.AddRow(new string[] {
+ "5",
"6/1/2002 12:00:00 AM",
- "Panniers",
- "4",
- "39",
- "3002a5d5-fec3-464b-bef3-e0f81d35f431"});
- table512.AddRow(new string[] {
+ "Mountain Bikes",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+ table492.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "Pumps",
- "4",
- "40",
- "fe4d46f2-c87c-48c5-a4a1-3f55712d80b1"});
- table512.AddRow(new string[] {
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table492.AddRow(new string[] {
+ "7",
"6/1/2002 12:00:00 AM",
- "Tires and Tubes",
- "4",
- "41",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table512.AddRow(new string[] {
- "6/1/2005 12:00:00 AM",
- "Record to Delete",
- "",
- "42",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 438
- await testRunner.AndAsync("the sorted results are", ((string)(null)), table512, "And ");
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 275
+ await testRunner.AndAsync("the sorted results are", ((string)(null)), table492, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature
index 42984b4..2aa0ed9 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateBatchTests.feature
@@ -8,14 +8,14 @@ Background:
And I reset the database after the scenario
Scenario: UpdateBatchAsync01
- Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ Given the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | Name | ParentProductCategoryId |
- | 41 | Ping Pong | 3 |
- | 42 | Donald Duck | 12 |
+ | ProductCategoryId | Name |
+ | 6 | Ping Pong |
+ | 7 | Donald Duck |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| models | {{models}} | IEnumerable |
@@ -26,18 +26,23 @@ Scenario: UpdateBatchAsync01
| IsFailure | IsSuccess | Message |
| False | True | |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 3 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | 12 | Donald Duck | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 3 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | 12 | Donald Duck | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Ping Pong | 5/24/2024 12:34:56 PM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | Donald Duck | 5/24/2024 12:34:56 PM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+ And the table 'Production.ProductCategory' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | Ping Pong | 5/24/2024 12:34:56 PM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | Donald Duck | 5/24/2024 12:34:56 PM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: UpdateBatchAsync02
+Scenario: UpdateBatchAsyncNoRecords
Given I don't reset the database after the scenario
When I populate a list of the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | Name | ParentProductCategoryId |
+ | ProductCategoryId | Name |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| models | {{models}} | IEnumerable |
@@ -45,11 +50,16 @@ Scenario: UpdateBatchAsync02
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
- | IsFailure | IsSuccess | Message |
- | True | False | Please select some records to update! |
+ | IsFailure | IsSuccess | Message |
+ | True | False | Please select some records to update! |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ And the table 'Production.ProductCategory' contains
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 1 | Bikes | 6/1/2002 12:00:00 AM | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | Components | 6/1/2002 12:00:00 AM | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | Clothing | 6/1/2002 12:00:00 AM | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | Accessories | 6/1/2002 12:00:00 AM | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | Mountain Bikes | 6/1/2002 12:00:00 AM | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | Road Bikes | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | For Delete Tests Only | 6/1/2002 12:00:00 AM | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature
index 324b129..b4b0218 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature
@@ -8,14 +8,14 @@ Background:
Given The service to test is 'AdventureWorksDemo.Data.Services.IProductCategoryService'
And I reset the database after the scenario
-Scenario: Update01
- Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+Scenario: UpdateAsync
+ Given the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | Name | ParentProductCategoryId |
- | 41 | Ping Pong | |
+ | ProductCategoryId | Name |
+ | 6 | How Now Brown Cow |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
@@ -26,45 +26,19 @@ Scenario: Update01
| IsFailure | IsSuccess | Message |
| False | True | |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 5/24/2024 12:34:56 PM | How Now Brown Cow | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
-Scenario: Update02
- Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
- When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | Name | ParentProductCategoryId |
- | 41 | Ping Pong | 42 |
- And I call the method 'UpdateAsync' with the parameter values
- | Key | Value | TypeName |
- | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
- Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ServiceResult |
- And the result is
- | IsFailure | IsSuccess | Message |
- | False | True | |
- And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 42 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 42 | Ping Pong | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
-Scenario: Update03
- Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 5/24/2024 12:34:56 PM | How Now Brown Cow | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+
+Scenario: UpdateNoChange
+ Given I don't reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | Name | ParentProductCategoryId |
- | 41 | Tires and Tubes | 42 |
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
@@ -72,25 +46,25 @@ Scenario: Update03
| Expected |
| AdventureWorksDemo.Data.Models.ServiceResult |
And the result is
- | IsFailure | IsSuccess | Message |
- | False | True | |
+ | IsFailure | IsSuccess | Message |
+ | False | True | Record is already up to date! |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 42 | Tires and Tubes | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 42 | Tires and Tubes | 5/24/2024 12:34:56 PM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
-
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
-Scenario: UpdateInvalidName
- Given the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+Scenario: UpdateShortName
+ Given I don't reset the database after the scenario
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | Name | ParentProductCategoryId |
- | 41 | Hi | 42 |
+ | ProductCategoryId | Name |
+ | 6 | Hi |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
@@ -104,40 +78,19 @@ Scenario: UpdateInvalidName
| Expected |
| 'Name' must be between 3 and 50 characters. You entered 2 characters. |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 42 | Hi | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ | ProductCategoryId | Name | ModifiedDate | Rowguid |
+ | 6 | Hi | 6/1/2002 12:00:00 AM | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
-Scenario: UpdateNoChange
- Given I don't reset the database after the scenario
- When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | ParentProductCategoryId | Name |
- | 41 | 4 | Tires and Tubes |
- And I call the method 'UpdateAsync' with the parameter values
- | Key | Value | TypeName |
- | model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
- Then the result is of type
- | Expected |
- | AdventureWorksDemo.Data.Models.ServiceResult |
- And the result is
- | IsFailure | IsSuccess | Message |
- | False | True | Record is already up to date! |
- And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
+ And the table 'Production.ProductCategory' filtered by 'ProductCategoryId > 5' contains
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
Scenario: UpdateUnknownRecord
Given I don't reset the database after the scenario
When I populate the model 'AdventureWorksDemo.Data.Models.ProductCategoryModel'
- | ProductCategoryId | ParentProductCategoryId | Name |
- | 1234 | 4 | UpdateUnknownRecord |
+ | ProductCategoryId | Name |
+ | 1234 | UpdateUnknownRecord |
And I call the method 'UpdateAsync' with the parameter values
| Key | Value | TypeName |
| model | {{model}} | AdventureWorksDemo.Data.Models.ProductCategoryModel |
@@ -150,9 +103,15 @@ Scenario: UpdateUnknownRecord
| True | False | Unable to locate record to update! |
And the results property 'Value' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 1234 | 4 | UpdateUnknownRecord | 1/1/0001 12:00:00 AM | 00000000-0000-0000-0000-000000000000 |
- And the table 'SalesLT.ProductCategory' filtered by 'ProductCategoryId > 40' contains
- | ProductCategoryId | ParentProductCategoryId | Name | ModifiedDate | Rowguid |
- | 41 | 4 | Tires and Tubes | 6/1/2002 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-60e28d47dcdf |
- | 42 | | Record to Delete | 6/1/2005 12:00:00 AM | 3c17c9ae-e906-48b4-bdd3-000000000001 |
\ No newline at end of file
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1234 | 1/1/0001 12:00:00 AM | UpdateUnknownRecord | 00000000-0000-0000-0000-000000000000 |
+
+ And the table 'Production.ProductCategory' contains
+ | ProductCategoryId | ModifiedDate | Name | Rowguid |
+ | 1 | 6/1/2002 12:00:00 AM | Bikes | cfbda25c-df71-47a7-b81b-64ee161aa37c |
+ | 2 | 6/1/2002 12:00:00 AM | Components | c657828d-d808-4aba-91a3-af2ce02300e9 |
+ | 3 | 6/1/2002 12:00:00 AM | Clothing | 10a7c342-ca82-48d4-8a38-46a2eb089b74 |
+ | 4 | 6/1/2002 12:00:00 AM | Accessories | 2be3be36-d9a2-4eee-b593-ed895d97c2a6 |
+ | 5 | 6/1/2002 12:00:00 AM | Mountain Bikes | 2d364ade-264a-433c-b092-4fcbf3804e01 |
+ | 6 | 6/1/2002 12:00:00 AM | Road Bikes | 000310c0-bcc8-42c4-b0c3-45ae611af06b |
+ | 7 | 6/1/2002 12:00:00 AM | For Delete Tests Only | 02c5061d-ecdc-4274-b5f1-e91d76bc3f37 |
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs
index 1d20c6e..624c257 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Features/Services/ProductCategoryService/ProductCategoryServiceUpdateTests.feature.cs
@@ -108,13 +108,13 @@ await testRunner.GivenAsync("The service to test is \'AdventureWorksDemo.Data.Se
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("Update01")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateAsync")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")]
- public async System.Threading.Tasks.Task Update01()
+ public async System.Threading.Tasks.Task UpdateAsync()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update01", null, tagsOfScenario, argumentsOfScenario, featureTags);
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateAsync", null, tagsOfScenario, argumentsOfScenario, featureTags);
#line 11
this.ScenarioInitialize(scenarioInfo);
#line hidden
@@ -128,119 +128,109 @@ public async System.Threading.Tasks.Task Update01()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table526 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table506 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table526.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table506.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table526.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table506.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
#line 12
- await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table526, "Given ");
+ await testRunner.GivenAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table506, "Given ");
#line hidden
- global::Reqnroll.Table table527 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table507 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "Name",
- "ParentProductCategoryId"});
- table527.AddRow(new string[] {
- "41",
- "Ping Pong",
- ""});
+ "Name"});
+ table507.AddRow(new string[] {
+ "6",
+ "How Now Brown Cow"});
#line 16
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table527, "When ");
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table507, "When ");
#line hidden
- global::Reqnroll.Table table528 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table508 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table528.AddRow(new string[] {
+ table508.AddRow(new string[] {
"model",
"{{model}}",
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
#line 19
- await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table528, "And ");
+ await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table508, "And ");
#line hidden
- global::Reqnroll.Table table529 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table509 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table529.AddRow(new string[] {
+ table509.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
#line 22
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table529, "Then ");
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table509, "Then ");
#line hidden
- global::Reqnroll.Table table530 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table510 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table530.AddRow(new string[] {
+ table510.AddRow(new string[] {
"False",
"True",
""});
#line 25
- await testRunner.AndAsync("the result is", ((string)(null)), table530, "And ");
+ await testRunner.AndAsync("the result is", ((string)(null)), table510, "And ");
#line hidden
- global::Reqnroll.Table table531 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table511 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table531.AddRow(new string[] {
- "41",
- "",
- "Ping Pong",
+ table511.AddRow(new string[] {
+ "6",
"5/24/2024 12:34:56 PM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
+ "How Now Brown Cow",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
#line 28
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table531, "And ");
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table511, "And ");
#line hidden
- global::Reqnroll.Table table532 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table512 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table532.AddRow(new string[] {
- "41",
- "",
- "Ping Pong",
+ table512.AddRow(new string[] {
+ "6",
"5/24/2024 12:34:56 PM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table532.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 31
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table532, "And ");
+ "How Now Brown Cow",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table512.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 32
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table512, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("Update02")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateNoChange")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")]
- public async System.Threading.Tasks.Task Update02()
+ public async System.Threading.Tasks.Task UpdateNoChange()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update02", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 36
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateNoChange", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 37
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -253,119 +243,97 @@ public async System.Threading.Tasks.Task Update02()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table533 = new global::Reqnroll.Table(new string[] {
+#line 38
+ await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
+#line hidden
+ global::Reqnroll.Table table513 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table533.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table513.AddRow(new string[] {
+ "7",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table533.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 37
- await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table533, "Given ");
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 39
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table513, "When ");
#line hidden
- global::Reqnroll.Table table534 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "Name",
- "ParentProductCategoryId"});
- table534.AddRow(new string[] {
- "41",
- "Ping Pong",
- "42"});
-#line 41
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table534, "When ");
-#line hidden
- global::Reqnroll.Table table535 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table514 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table535.AddRow(new string[] {
+ table514.AddRow(new string[] {
"model",
"{{model}}",
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 44
- await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table535, "And ");
+#line 42
+ await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table514, "And ");
#line hidden
- global::Reqnroll.Table table536 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table515 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table536.AddRow(new string[] {
+ table515.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 47
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table536, "Then ");
+#line 45
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table515, "Then ");
#line hidden
- global::Reqnroll.Table table537 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table516 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table537.AddRow(new string[] {
+ table516.AddRow(new string[] {
"False",
"True",
- ""});
-#line 50
- await testRunner.AndAsync("the result is", ((string)(null)), table537, "And ");
+ "Record is already up to date!"});
+#line 48
+ await testRunner.AndAsync("the result is", ((string)(null)), table516, "And ");
#line hidden
- global::Reqnroll.Table table538 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table517 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table538.AddRow(new string[] {
- "41",
- "42",
- "Ping Pong",
- "5/24/2024 12:34:56 PM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
-#line 53
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table538, "And ");
+ table517.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 51
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table517, "And ");
#line hidden
- global::Reqnroll.Table table539 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table518 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table539.AddRow(new string[] {
- "41",
- "42",
- "Ping Pong",
- "5/24/2024 12:34:56 PM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table539.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 56
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table539, "And ");
+ table518.AddRow(new string[] {
+ "6",
+ "6/1/2002 12:00:00 AM",
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table518.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 54
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table518, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
}
[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("Update03")]
+ [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateShortName")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")]
- public async System.Threading.Tasks.Task Update03()
+ public async System.Threading.Tasks.Task UpdateShortName()
{
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update03", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 60
+ global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateShortName", null, tagsOfScenario, argumentsOfScenario, featureTags);
+#line 59
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -378,341 +346,103 @@ public async System.Threading.Tasks.Task Update03()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
- global::Reqnroll.Table table540 = new global::Reqnroll.Table(new string[] {
+#line 60
+ await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
+#line hidden
+ global::Reqnroll.Table table519 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table540.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table519.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table540.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table519.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
#line 61
- await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table540, "Given ");
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table519, "And ");
#line hidden
- global::Reqnroll.Table table541 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table520 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "Name",
- "ParentProductCategoryId"});
- table541.AddRow(new string[] {
- "41",
- "Tires and Tubes",
- "42"});
+ "Name"});
+ table520.AddRow(new string[] {
+ "6",
+ "Hi"});
#line 65
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table541, "When ");
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table520, "When ");
#line hidden
- global::Reqnroll.Table table542 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table521 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table542.AddRow(new string[] {
+ table521.AddRow(new string[] {
"model",
"{{model}}",
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
#line 68
- await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table542, "And ");
+ await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table521, "And ");
#line hidden
- global::Reqnroll.Table table543 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table522 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table543.AddRow(new string[] {
+ table522.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
#line 71
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table543, "Then ");
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table522, "Then ");
#line hidden
- global::Reqnroll.Table table544 = new global::Reqnroll.Table(new string[] {
- "IsFailure",
- "IsSuccess",
- "Message"});
- table544.AddRow(new string[] {
- "False",
- "True",
- ""});
-#line 74
- await testRunner.AndAsync("the result is", ((string)(null)), table544, "And ");
-#line hidden
- global::Reqnroll.Table table545 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table545.AddRow(new string[] {
- "41",
- "42",
- "Tires and Tubes",
- "5/24/2024 12:34:56 PM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
-#line 77
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table545, "And ");
-#line hidden
- global::Reqnroll.Table table546 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table546.AddRow(new string[] {
- "41",
- "42",
- "Tires and Tubes",
- "5/24/2024 12:34:56 PM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table546.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 80
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table546, "And ");
-#line hidden
- }
- await this.ScenarioCleanupAsync();
- }
-
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateInvalidName")]
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")]
- public async System.Threading.Tasks.Task UpdateInvalidName()
- {
- string[] tagsOfScenario = ((string[])(null));
- System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateInvalidName", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 86
-this.ScenarioInitialize(scenarioInfo);
-#line hidden
- if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
- {
- testRunner.SkipScenario();
- }
- else
- {
- await this.ScenarioStartAsync();
-#line 7
-await this.FeatureBackgroundAsync();
-#line hidden
- global::Reqnroll.Table table547 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table547.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table547.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 87
- await testRunner.GivenAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table547, "Given ");
-#line hidden
- global::Reqnroll.Table table548 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "Name",
- "ParentProductCategoryId"});
- table548.AddRow(new string[] {
- "41",
- "Hi",
- "42"});
-#line 91
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table548, "When ");
-#line hidden
- global::Reqnroll.Table table549 = new global::Reqnroll.Table(new string[] {
- "Key",
- "Value",
- "TypeName"});
- table549.AddRow(new string[] {
- "model",
- "{{model}}",
- "AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 94
- await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table549, "And ");
-#line hidden
- global::Reqnroll.Table table550 = new global::Reqnroll.Table(new string[] {
- "Expected"});
- table550.AddRow(new string[] {
- "AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 97
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table550, "Then ");
-#line hidden
- global::Reqnroll.Table table551 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table523 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess"});
- table551.AddRow(new string[] {
+ table523.AddRow(new string[] {
"True",
"False"});
-#line 100
- await testRunner.AndAsync("the result is", ((string)(null)), table551, "And ");
+#line 74
+ await testRunner.AndAsync("the result is", ((string)(null)), table523, "And ");
#line hidden
- global::Reqnroll.Table table552 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table524 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table552.AddRow(new string[] {
+ table524.AddRow(new string[] {
"\'Name\' must be between 3 and 50 characters. You entered 2 characters."});
-#line 103
- await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table552, "And ");
+#line 77
+ await testRunner.AndAsync("the results property \'Message\' contains", ((string)(null)), table524, "And ");
#line hidden
- global::Reqnroll.Table table553 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table525 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name",
"ModifiedDate",
"Rowguid"});
- table553.AddRow(new string[] {
- "41",
- "42",
+ table525.AddRow(new string[] {
+ "6",
"Hi",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
-#line 106
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table553, "And ");
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+#line 80
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table525, "And ");
#line hidden
- global::Reqnroll.Table table554 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table526 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
- "Rowguid"});
- table554.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
- "6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table554.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 109
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table554, "And ");
-#line hidden
- }
- await this.ScenarioCleanupAsync();
- }
-
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
- [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("UpdateNoChange")]
- [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "ProductCategoryServiceUpdateTests")]
- public async System.Threading.Tasks.Task UpdateNoChange()
- {
- string[] tagsOfScenario = ((string[])(null));
- System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
- global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateNoChange", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 114
-this.ScenarioInitialize(scenarioInfo);
-#line hidden
- if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
- {
- testRunner.SkipScenario();
- }
- else
- {
- await this.ScenarioStartAsync();
-#line 7
-await this.FeatureBackgroundAsync();
-#line hidden
-#line 115
- await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
-#line hidden
- global::Reqnroll.Table table555 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name"});
- table555.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes"});
-#line 116
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table555, "When ");
-#line hidden
- global::Reqnroll.Table table556 = new global::Reqnroll.Table(new string[] {
- "Key",
- "Value",
- "TypeName"});
- table556.AddRow(new string[] {
- "model",
- "{{model}}",
- "AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 119
- await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table556, "And ");
-#line hidden
- global::Reqnroll.Table table557 = new global::Reqnroll.Table(new string[] {
- "Expected"});
- table557.AddRow(new string[] {
- "AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 122
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table557, "Then ");
-#line hidden
- global::Reqnroll.Table table558 = new global::Reqnroll.Table(new string[] {
- "IsFailure",
- "IsSuccess",
- "Message"});
- table558.AddRow(new string[] {
- "False",
- "True",
- "Record is already up to date!"});
-#line 125
- await testRunner.AndAsync("the result is", ((string)(null)), table558, "And ");
-#line hidden
- global::Reqnroll.Table table559 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
"Name",
- "ModifiedDate",
"Rowguid"});
- table559.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ table526.AddRow(new string[] {
+ "6",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
-#line 128
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table559, "And ");
-#line hidden
- global::Reqnroll.Table table560 = new global::Reqnroll.Table(new string[] {
- "ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
- "ModifiedDate",
- "Rowguid"});
- table560.AddRow(new string[] {
- "41",
- "4",
- "Tires and Tubes",
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table526.AddRow(new string[] {
+ "7",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table560.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 131
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table560, "And ");
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 84
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' filtered by \'ProductCategoryId > 5\' contai" +
+ "ns", ((string)(null)), table526, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
@@ -726,7 +456,7 @@ public async System.Threading.Tasks.Task UpdateUnknownRecord()
string[] tagsOfScenario = ((string[])(null));
System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new System.Collections.Specialized.OrderedDictionary();
global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("UpdateUnknownRecord", null, tagsOfScenario, argumentsOfScenario, featureTags);
-#line 136
+#line 89
this.ScenarioInitialize(scenarioInfo);
#line hidden
if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags)))
@@ -739,86 +469,103 @@ public async System.Threading.Tasks.Task UpdateUnknownRecord()
#line 7
await this.FeatureBackgroundAsync();
#line hidden
-#line 137
+#line 90
await testRunner.GivenAsync("I don\'t reset the database after the scenario", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given ");
#line hidden
- global::Reqnroll.Table table561 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table527 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
"Name"});
- table561.AddRow(new string[] {
+ table527.AddRow(new string[] {
"1234",
- "4",
"UpdateUnknownRecord"});
-#line 138
- await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table561, "When ");
+#line 91
+ await testRunner.WhenAsync("I populate the model \'AdventureWorksDemo.Data.Models.ProductCategoryModel\'", ((string)(null)), table527, "When ");
#line hidden
- global::Reqnroll.Table table562 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table528 = new global::Reqnroll.Table(new string[] {
"Key",
"Value",
"TypeName"});
- table562.AddRow(new string[] {
+ table528.AddRow(new string[] {
"model",
"{{model}}",
"AdventureWorksDemo.Data.Models.ProductCategoryModel"});
-#line 141
- await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table562, "And ");
+#line 94
+ await testRunner.AndAsync("I call the method \'UpdateAsync\' with the parameter values", ((string)(null)), table528, "And ");
#line hidden
- global::Reqnroll.Table table563 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table529 = new global::Reqnroll.Table(new string[] {
"Expected"});
- table563.AddRow(new string[] {
+ table529.AddRow(new string[] {
"AdventureWorksDemo.Data.Models.ServiceResult"});
-#line 144
- await testRunner.ThenAsync("the result is of type", ((string)(null)), table563, "Then ");
+#line 97
+ await testRunner.ThenAsync("the result is of type", ((string)(null)), table529, "Then ");
#line hidden
- global::Reqnroll.Table table564 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table530 = new global::Reqnroll.Table(new string[] {
"IsFailure",
"IsSuccess",
"Message"});
- table564.AddRow(new string[] {
+ table530.AddRow(new string[] {
"True",
"False",
"Unable to locate record to update!"});
-#line 148
- await testRunner.AndAsync("the result is", ((string)(null)), table564, "And ");
+#line 101
+ await testRunner.AndAsync("the result is", ((string)(null)), table530, "And ");
#line hidden
- global::Reqnroll.Table table565 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table531 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table565.AddRow(new string[] {
+ table531.AddRow(new string[] {
"1234",
- "4",
- "UpdateUnknownRecord",
"1/1/0001 12:00:00 AM",
+ "UpdateUnknownRecord",
"00000000-0000-0000-0000-000000000000"});
-#line 152
- await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table565, "And ");
+#line 105
+ await testRunner.AndAsync("the results property \'Value\' contains", ((string)(null)), table531, "And ");
#line hidden
- global::Reqnroll.Table table566 = new global::Reqnroll.Table(new string[] {
+ global::Reqnroll.Table table532 = new global::Reqnroll.Table(new string[] {
"ProductCategoryId",
- "ParentProductCategoryId",
- "Name",
"ModifiedDate",
+ "Name",
"Rowguid"});
- table566.AddRow(new string[] {
- "41",
+ table532.AddRow(new string[] {
+ "1",
+ "6/1/2002 12:00:00 AM",
+ "Bikes",
+ "cfbda25c-df71-47a7-b81b-64ee161aa37c"});
+ table532.AddRow(new string[] {
+ "2",
+ "6/1/2002 12:00:00 AM",
+ "Components",
+ "c657828d-d808-4aba-91a3-af2ce02300e9"});
+ table532.AddRow(new string[] {
+ "3",
+ "6/1/2002 12:00:00 AM",
+ "Clothing",
+ "10a7c342-ca82-48d4-8a38-46a2eb089b74"});
+ table532.AddRow(new string[] {
"4",
- "Tires and Tubes",
"6/1/2002 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-60e28d47dcdf"});
- table566.AddRow(new string[] {
- "42",
- "",
- "Record to Delete",
- "6/1/2005 12:00:00 AM",
- "3c17c9ae-e906-48b4-bdd3-000000000001"});
-#line 155
- await testRunner.AndAsync("the table \'SalesLT.ProductCategory\' filtered by \'ProductCategoryId > 40\' contains" +
- "", ((string)(null)), table566, "And ");
+ "Accessories",
+ "2be3be36-d9a2-4eee-b593-ed895d97c2a6"});
+ table532.AddRow(new string[] {
+ "5",
+ "6/1/2002 12:00:00 AM",
+ "Mountain Bikes",
+ "2d364ade-264a-433c-b092-4fcbf3804e01"});
+ table532.AddRow(new string[] {
+ "6",
+ "6/1/2002 12:00:00 AM",
+ "Road Bikes",
+ "000310c0-bcc8-42c4-b0c3-45ae611af06b"});
+ table532.AddRow(new string[] {
+ "7",
+ "6/1/2002 12:00:00 AM",
+ "For Delete Tests Only",
+ "02c5061d-ecdc-4274-b5f1-e91d76bc3f37"});
+#line 109
+ await testRunner.AndAsync("the table \'Production.ProductCategory\' contains", ((string)(null)), table532, "And ");
#line hidden
}
await this.ScenarioCleanupAsync();
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs
index 4cc9c48..7f4001a 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/Hooks/DatabaseHooks.cs
@@ -1,6 +1,7 @@
namespace AdventureWorksDemo.Data.Tests.reqnroll.Hooks
{
using AdventureWorksDemo.Common.Tests;
+ using AdventureWorksDemo.Common.Tests.Helpers;
using AdventureWorksDemo.Data.Tests.reqnroll.Helpers;
using AdventureWorksDemo.Data.Tests.reqnroll.ValueRetrievers;
@@ -9,6 +10,8 @@ namespace AdventureWorksDemo.Data.Tests.reqnroll.Hooks
[Binding]
public sealed class DatabaseHooks : IDisposable
{
+ internal static Microsoft.Extensions.Configuration.IConfiguration AppSettings => CommonHelper.Configuration.GetConfiguration;
+
[BeforeTestRun(Order = 1)]
public static void BeforeTestRun()
{
@@ -29,7 +32,7 @@ public static async Task DataBaseBeforeScenario()
[BeforeTestRun(Order = 10)]
public static async Task DatabaseBeforeTestRunAsync()
{
- DockerMsSqlServerDatabase.Current = await DockerMsSqlServerDatabase.Create();
+ DockerMsSqlServerDatabase.Current = await DockerMsSqlServerDatabase.Create(default, CreateTestingDatabaseBakFile());
Helper.ScenarioContexts.UpdateFlag(ScenarioContextKey.FlagResetDatabase, false);
Helper.DateTimeHelpers.SetTimeProvider();
}
@@ -38,5 +41,20 @@ public void Dispose()
{
Task.Run(async () => { await DockerMsSqlServerDatabase.Current!.DisposeAsync(); });
}
+
+ private static bool CreateTestingDatabaseBakFile()
+ {
+ string location = AppSettings["Database:Location"]?
+ .Replace("<>", CommonHelper.IO.TryGetSolutionDirectoryInfo()?.FullName)
+ ?? string.Empty;
+ string destination = Path.Combine(location, AppSettings["Database:DataBaseForTesting"] ?? "");
+ if (!File.Exists(destination))
+ {
+ string source = Path.Combine(location, AppSettings["Database:SourceDatabase"] ?? "");
+ File.Copy(source, destination);
+ return true;
+ }
+ return false;
+ }
}
}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs
index e26cb56..46c125e 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/DirectDataTableSteps.cs
@@ -17,16 +17,19 @@ public void ThenTheTableContains(string tableName, Reqnroll.DataTable table)
[Then("the table {string} filtered by {string} contains")]
public void ThenTheTableFilteredByContains(string tableName, string filter, Reqnroll.DataTable table)
{
- string sqlQuery = $"SELECT * FROM {tableName} ";
- if (filter != string.Empty)
- sqlQuery += $" WHERE {filter};";
- else
- sqlQuery += ";";
+ string sqlQuery = $"SELECT * FROM {tableName} " +
+ (string.IsNullOrEmpty(filter) ? ";" : $"WHERE {filter};");
+ // // // if there are nullable columns you need to specify the column names
switch (tableName)
{
- case "SalesLT.Address": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break;
- case "SalesLT.ProductDescription": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break;
- case "SalesLT.ProductCategory": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break;
+ case "Person.Address":
+ sqlQuery = "SELECT AddressID, AddressLine1, AddressLine2, City, StateProvinceID, PostalCode,RowGuid ,ModifiedDate FROM Person.Address " +
+ (string.IsNullOrEmpty(filter) ? ";" : $"WHERE {filter};");
+ table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery));
+ break;
+
+ case "Production.ProductDescription": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break;
+ case "Production.ProductCategory": table.CompareToSet(CommonHelper.Sql.GetDataTableAsList(sqlQuery)); break;
default:
throw new NotImplementedException(tableName);
}
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs
index 1720927..b522f29 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/StepDefinitions/StepDefinitions.cs
@@ -123,7 +123,7 @@ public void ThenTheResultIs(DataTable table)
break;
default:
- throw new NotImplementedException($"Type [{resultTypeName}] is not handled!");
+ throw new NotImplementedException($"Type [{resultTypeName}] is not handled in step {nameof(ThenTheResultIs)}!");
}
}
@@ -237,6 +237,7 @@ public void WhenIPopulateTheModel(string modelTypeName, DataTable dataTable)
var model = Helper.Types.PopulateModelFromRow(modelTypeName, dataTable.Rows[0], null);
Helper.ScenarioContexts.AddToContext(ScenarioContextKey.Model, model);
}
+
[When("I update the model {string}")]
public void WhenIUpdateTheModel(string modelTypeName, DataTable dataTable)
{
diff --git a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json
index 1de1ff2..03ea212 100644
--- a/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json
+++ b/src/API/AdventureWorksDemo.Data.Tests.reqnroll/appsettings.json
@@ -1,16 +1,23 @@
{
+ "Logging": {
+ "TestContainers": {
+ "SQLDBConfiguration": "None"
+ }
+ },
"TestContainers": {
"RemoveTestContainersAfterTestRun": true
},
"Database": {
"Location": "<>\\..\\Configuration\\backup\\",
- "FileName": "AdventureWorksLT2022.bak",
+ "SourceDatabase": "AdventureWorks.bak",
+ "DataBaseForTesting": "DataBaseForTesting.bak",
"TestDbPrefix": "aw-",
"RestoreScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\RestoreDatabase.SQL",
- "ResetDataScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\PrepareTablesForTesting.SQL"
+ "ResetDataScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\PrepareTablesForTesting.SQL",
+ "BackupScriptName": "<>\\API\\AdventureWorksDemo.Common.Tests\\DatabaseSetup\\BackUpTestDatabase.SQL"
},
"GitHub": {
- "BackUpFile": "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksLT2022.bak"
+ "BackUpFile": "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2022.bak"
},
"Docker": {
"BindLocation": "/var/opt/mssql/backup"
diff --git a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj
index 97116e7..a31caa7 100644
--- a/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj
+++ b/src/API/AdventureWorksDemo.Data.Tests/AdventureWorksDemo.Data.Tests.csproj
@@ -23,26 +23,27 @@
-
-
+
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
diff --git a/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs b/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs
index ec5087c..7e5465b 100644
--- a/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests/Fakes/FakeDbContext_Address.cs
@@ -23,8 +23,7 @@ internal static List FakeAddresses
AddressId = 1,
AddressLine1 = "2564 S. Redwood Rd.",
City = "Riverton",
- StateProvince = "Utah",
- CountryRegion = "United States",
+ StateProvinceId = 1,
PostalCode = "84065",
Rowguid = new Guid("E299E96D-63CB-4ACC-9BFD-5F0C23AE5820"),
ModifiedDate = Convert.ToDateTime("12 May 2005 01:52:23")
@@ -34,8 +33,7 @@ internal static List FakeAddresses
AddressId = 2,
AddressLine1 = "9905 Three Rivers Drive",
City = "Kelso",
- StateProvince = "Washington",
- CountryRegion = "United States",
+ StateProvinceId = 2,
PostalCode = "98626",
Rowguid = new Guid("01A85112-6EE1-4F2C-9212-1C2ABC612E67"),
ModifiedDate = Convert.ToDateTime("12 May 2005 01:52:23")
@@ -45,8 +43,7 @@ internal static List FakeAddresses
AddressId = 3,
AddressLine1 = "25 First Canadian Place",
City = "Toronto",
- StateProvince = "Ontario",
- CountryRegion = "Canada",
+ StateProvinceId = 3,
PostalCode = "M4B 1V5",
Rowguid = new Guid("07A009B2-1421-4597-AB85-22BCE3C82B2C"),
ModifiedDate = Convert.ToDateTime("12 May 2005 01:52:24")
@@ -56,8 +53,7 @@ internal static List FakeAddresses
AddressId = 4,
AddressLine1 = "2560 Bay Street",
City = "Toronto",
- StateProvince = "Ontario",
- CountryRegion = "Canada",
+ StateProvinceId = 4,
PostalCode = "M4B 1V7",
Rowguid = new Guid("726819A8-1B02-4EFD-AEB9-3FD801D9F153"),
ModifiedDate = Convert.ToDateTime("13 May 2005 01:45:23")
@@ -67,8 +63,7 @@ internal static List FakeAddresses
AddressId = 5,
AddressLine1 = "9992 Whipple Rd",
City = "Union City",
- StateProvince = "California",
- CountryRegion = "United States",
+ StateProvinceId = 5,
PostalCode = "94587",
Rowguid = new Guid("88258A1B-B50F-440F-93B9-5D7AF831D5FC"),
ModifiedDate = Convert.ToDateTime("14 May 2005 06:52:23")
@@ -78,8 +73,7 @@ internal static List FakeAddresses
AddressId = 6,
AddressLine1 = "25915 140th Ave Ne",
City = "Bellevue",
- StateProvince = "Washington",
- CountryRegion = "United States",
+ StateProvinceId = 6,
PostalCode = "98004",
Rowguid = new Guid("0D46F203-CDB6-4495-83F5-A97FF0CEC174"),
ModifiedDate = Convert.ToDateTime("28 May 2005 22:52:23")
@@ -89,8 +83,7 @@ internal static List FakeAddresses
AddressId = 7,
AddressLine1 = "2574 Milton Park",
City = "Oxford",
- StateProvince = "England",
- CountryRegion = "United Kingdom",
+ StateProvinceId = 7,
PostalCode = "OX14 4SE",
Rowguid = new Guid("62D0C689-CF44-4AB3-9C3E-6142F4E0101C"),
ModifiedDate = Convert.ToDateTime("12 June 2005 01:52:23")
@@ -104,8 +97,7 @@ internal static List FakeAddresses
AddressLine1 = "Ping",
AddressLine2 = "Pong",
City = "Ping Pong",
- StateProvince = "Foo",
- CountryRegion = "Bar",
+ StateProvinceId = 1,
PostalCode = "98765",
};
}
diff --git a/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs b/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs
index 44445cd..3e920bb 100644
--- a/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests/Fakes/MockedDbContext.cs
@@ -8,9 +8,9 @@ namespace AdventureWorksDemo.Data.Tests.Fakes
{
internal static class MockedDbContext
{
- internal static Mock MockedDbContextAllData()
+ internal static Mock MockedDbContextAllData()
{
- Mock dbContext = new();
+ Mock dbContext = new();
// //
dbContext.Setup(m => m.Set()).Returns(FakeDbContext.FakeAddresses.BuildMockDbSet().Object);
diff --git a/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs b/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs
index 37eb6c6..fb60f51 100644
--- a/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs
+++ b/src/API/AdventureWorksDemo.Data.Tests/Validaton/AddressValidatorTests.cs
@@ -111,38 +111,22 @@ public void City_Should_Not_Have_Length_Between_3_And_30(string value)
result.ShouldHaveValidationErrorFor(m => m.City);
}
- [DataRow("{{PadRight:X:3}}")]
- [DataRow("{{PadRight:X:4}}")]
- [DataRow("{{PadRight:X:49}}")]
- [DataRow("{{PadRight:X:50}}")]
- [TestMethod]
- public void CountryRegion_Should_Have_Length_Between_3_And_50(string value)
- {
- // arrange
- var entity = _address;
- entity!.CountryRegion = value.InterpretValue();
- //act
- var result = _validator.TestValidate(entity);
- //assert
- result.ShouldNotHaveValidationErrorFor(m => m.CountryRegion);
- }
-
- [DataRow("")]
- [DataRow("1")]
- [DataRow("12")]
- [DataRow("66")]
- [DataRow("{{PadRight:X:51}}")]
- [TestMethod]
- public void CountryRegion_Should_NotHave_Length_Between_3_And_50(string value)
- {
- // arrange
- var entity = _address;
- entity!.CountryRegion = value.InterpretValue();
- //act
- var result = _validator.TestValidate(entity);
- //assert
- result.ShouldHaveValidationErrorFor(m => m.CountryRegion);
- }
+ //[DataRow("")]
+ //[DataRow("1")]
+ //[DataRow("12")]
+ //[DataRow("66")]
+ //[DataRow("{{PadRight:X:51}}")]
+ //[TestMethod]
+ //public void CountryRegion_Should_NotHave_Length_Between_3_And_50(string value)
+ //{
+ // // arrange
+ // var entity = _address;
+ // entity!.CountryRegion = value.InterpretValue();
+ // //act
+ // var result = _validator.TestValidate(entity);
+ // //assert
+ // result.ShouldHaveValidationErrorFor(m => m.CountryRegion);
+ //}
[DataRow("{{PadRight:X:3}}")]
[DataRow("{{PadRight:X:4}}")]
@@ -177,38 +161,38 @@ public void PostalCode_Should_NotHave_Length_Between_3_And_15(string value)
result.ShouldHaveValidationErrorFor(m => m.PostalCode);
}
- [DataRow("{{PadRight:X:3}}")]
- [DataRow("{{PadRight:X:4}}")]
- [DataRow("{{PadRight:X:49}}")]
- [DataRow("{{PadRight:X:50}}")]
- [TestMethod]
- public void StateProvince_Should_Have_Length_Between_3_And_50(string value)
- {
- // arrange
- var entity = _address;
- entity!.StateProvince = value.InterpretValue();
- //act
- var result = _validator.TestValidate(entity);
- //assert
- result.ShouldNotHaveValidationErrorFor(m => m.StateProvince);
- }
-
- [DataRow("")]
- [DataRow("1")]
- [DataRow("12")]
- [DataRow("66")]
- [DataRow("{{PadRight:X:51}}")]
- [TestMethod]
- public void StateProvince_Should_NotHave_Length_Between_3_And_50(string value)
- {
- // arrange
- var entity = _address;
- entity!.StateProvince = value.InterpretValue();
- //act
- var result = _validator.TestValidate(entity);
- //assert
- result.ShouldHaveValidationErrorFor(m => m.StateProvince);
- }
+ //[DataRow("{{PadRight:X:3}}")]
+ //[DataRow("{{PadRight:X:4}}")]
+ //[DataRow("{{PadRight:X:49}}")]
+ //[DataRow("{{PadRight:X:50}}")]
+ //[TestMethod]
+ //public void StateProvince_Should_Have_Length_Between_3_And_50(string value)
+ //{
+ // // arrange
+ // var entity = _address;
+ // entity!.StateProvince = value.InterpretValue();
+ // //act
+ // var result = _validator.TestValidate(entity);
+ // //assert
+ // result.ShouldNotHaveValidationErrorFor(m => m.StateProvince);
+ //}
+
+ //[DataRow("")]
+ //[DataRow("1")]
+ //[DataRow("12")]
+ //[DataRow("66")]
+ //[DataRow("{{PadRight:X:51}}")]
+ //[TestMethod]
+ //public void StateProvince_Should_NotHave_Length_Between_3_And_50(string value)
+ //{
+ // // arrange
+ // var entity = _address;
+ // entity!.StateProvince = value.InterpretValue();
+ // //act
+ // var result = _validator.TestValidate(entity);
+ // //assert
+ // result.ShouldHaveValidationErrorFor(m => m.StateProvince);
+ //}
[TestInitialize]
public void TestInitialize()
@@ -220,7 +204,7 @@ public void TestInitialize()
AddressLine1 = "12345",
AddressLine2 = "12345",
City = "12345",
- CountryRegion = "12345",
+ StateProvinceId = 12345,
PostalCode = "12345"
};
}
diff --git a/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj b/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj
index f2fca96..5c71eb8 100644
--- a/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj
+++ b/src/API/AdventureWorksDemo.Data/AdventureWorksDemo.Data.csproj
@@ -12,9 +12,10 @@
-
+
-
+
+
diff --git a/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs b/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs
index 0f5fc06..25506d1 100644
--- a/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs
+++ b/src/API/AdventureWorksDemo.Data/DbContexts/AdventureWorksContext.cs
@@ -1,5 +1,5 @@
// This file has been auto generated by EF Core Power Tools.
-#nullable disable
+#nullable enable
using System;
using System.Collections.Generic;
using AdventureWorksDemo.Data.Entities;
@@ -7,46 +7,159 @@
namespace AdventureWorksDemo.Data.DbContexts;
-public partial class AdventureWorksDbContext : DbContext
+public partial class AdventureWorksContext : DbContext
{
- public AdventureWorksDbContext()
- { }
- public AdventureWorksDbContext(DbContextOptions options)
+ public AdventureWorksContext(DbContextOptions options)
: base(options)
{
}
public virtual DbSet Addresses { get; set; }
- public virtual DbSet BuildVersions { get; set; }
+ public virtual DbSet AddressTypes { get; set; }
+
+ public virtual DbSet AwbuildVersions { get; set; }
+
+ public virtual DbSet BillOfMaterials { get; set; }
+
+ public virtual DbSet BusinessEntities { get; set; }
+
+ public virtual DbSet BusinessEntityAddresses { get; set; }
+
+ public virtual DbSet BusinessEntityContacts { get; set; }
+
+ public virtual DbSet ContactTypes { get; set; }
+
+ public virtual DbSet CountryRegions { get; set; }
+
+ public virtual DbSet CountryRegionCurrencies { get; set; }
+
+ public virtual DbSet CreditCards { get; set; }
+
+ public virtual DbSet Cultures { get; set; }
+
+ public virtual DbSet Currencies { get; set; }
+
+ public virtual DbSet CurrencyRates { get; set; }
public virtual DbSet Customers { get; set; }
- public virtual DbSet CustomerAddresses { get; set; }
+ public virtual DbSet DatabaseLogs { get; set; }
+
+ public virtual DbSet Departments { get; set; }
+
+ public virtual DbSet EmailAddresses { get; set; }
+
+ public virtual DbSet Employees { get; set; }
+
+ public virtual DbSet EmployeeDepartmentHistories { get; set; }
+
+ public virtual DbSet EmployeePayHistories { get; set; }
public virtual DbSet ErrorLogs { get; set; }
+ public virtual DbSet Illustrations { get; set; }
+
+ public virtual DbSet JobCandidates { get; set; }
+
+ public virtual DbSet Locations { get; set; }
+
+ public virtual DbSet Passwords { get; set; }
+
+ public virtual DbSet People { get; set; }
+
+ public virtual DbSet PersonCreditCards { get; set; }
+
+ public virtual DbSet PersonPhones { get; set; }
+
+ public virtual DbSet PhoneNumberTypes { get; set; }
+
public virtual DbSet Products { get; set; }
public virtual DbSet ProductCategories { get; set; }
+ public virtual DbSet ProductCostHistories { get; set; }
+
public virtual DbSet ProductDescriptions { get; set; }
+ public virtual DbSet ProductInventories { get; set; }
+
+ public virtual DbSet ProductListPriceHistories { get; set; }
+
public virtual DbSet ProductModels { get; set; }
- public virtual DbSet ProductModelProductDescriptions { get; set; }
+ public virtual DbSet ProductModelIllustrations { get; set; }
+
+ public virtual DbSet ProductModelProductDescriptionCultures { get; set; }
+
+ public virtual DbSet ProductPhotos { get; set; }
+
+ public virtual DbSet ProductProductPhotos { get; set; }
+
+ public virtual DbSet ProductReviews { get; set; }
+
+ public virtual DbSet ProductSubcategories { get; set; }
+
+ public virtual DbSet ProductVendors { get; set; }
+
+ public virtual DbSet PurchaseOrderDetails { get; set; }
+
+ public virtual DbSet PurchaseOrderHeaders { get; set; }
public virtual DbSet SalesOrderDetails { get; set; }
public virtual DbSet SalesOrderHeaders { get; set; }
+ public virtual DbSet SalesOrderHeaderSalesReasons { get; set; }
+
+ public virtual DbSet SalesPeople { get; set; }
+
+ public virtual DbSet SalesPersonQuotaHistories { get; set; }
+
+ public virtual DbSet SalesReasons { get; set; }
+
+ public virtual DbSet SalesTaxRates { get; set; }
+
+ public virtual DbSet SalesTerritories { get; set; }
+
+ public virtual DbSet SalesTerritoryHistories { get; set; }
+
+ public virtual DbSet ScrapReasons { get; set; }
+
+ public virtual DbSet Shifts { get; set; }
+
+ public virtual DbSet ShipMethods { get; set; }
+
+ public virtual DbSet ShoppingCartItems { get; set; }
+
+ public virtual DbSet SpecialOffers { get; set; }
+
+ public virtual DbSet SpecialOfferProducts { get; set; }
+
+ public virtual DbSet StateProvinces { get; set; }
+
+ public virtual DbSet Stores { get; set; }
+
+ public virtual DbSet TransactionHistories { get; set; }
+
+ public virtual DbSet TransactionHistoryArchives { get; set; }
+
+ public virtual DbSet UnitMeasures { get; set; }
+
+ public virtual DbSet Vendors { get; set; }
+
+ public virtual DbSet WorkOrders { get; set; }
+
+ public virtual DbSet WorkOrderRoutings { get; set; }
+
+
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity(entity =>
{
entity.HasKey(e => e.AddressId).HasName("PK_Address_AddressID");
- entity.ToTable("Address", "SalesLT", tb => tb.HasComment("Street address information for customers."));
+ entity.ToTable("Address", "Person", tb => tb.HasComment("Street address information for customers, employees, and vendors."));
entity.Property(e => e.AddressId).HasComment("Primary key for Address records.");
entity.Property(e => e.AddressLine1).HasComment("First street address line.");
@@ -59,59 +172,102 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
entity.Property(e => e.Rowguid)
.HasDefaultValueSql("(newid())")
.HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
- entity.Property(e => e.StateProvince).HasComment("Name of state or province.");
+ entity.Property(e => e.StateProvinceId).HasComment("Unique identification number for the state or province. Foreign key to StateProvince table.");
+
+ entity.HasOne(d => d.StateProvince).WithMany(p => p.Addresses).OnDelete(DeleteBehavior.ClientSetNull);
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.ToTable("BuildVersion", tb => tb.HasComment("Current version number of the AdventureWorksLT 2012 sample database. "));
+ entity.HasKey(e => e.AddressTypeId).HasName("PK_AddressType_AddressTypeID");
- entity.Property(e => e.DatabaseVersion).HasComment("Version number of the database in 9.yy.mm.dd.00 format.");
+ entity.ToTable("AddressType", "Person", tb => tb.HasComment("Types of addresses stored in the Address table. "));
+
+ entity.Property(e => e.AddressTypeId).HasComment("Primary key for AddressType records.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Address type description. For example, Billing, Home, or Shipping.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.SystemInformationId).HasName("PK_AWBuildVersion_SystemInformationID");
+
+ entity.ToTable("AWBuildVersion", tb => tb.HasComment("Current version number of the AdventureWorks 2016 sample database. "));
+
entity.Property(e => e.SystemInformationId)
.ValueGeneratedOnAdd()
- .HasComment("Primary key for BuildVersion records.");
+ .HasComment("Primary key for AWBuildVersion records.");
+ entity.Property(e => e.DatabaseVersion).HasComment("Version number of the database in 9.yy.mm.dd.00 format.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
entity.Property(e => e.VersionDate).HasComment("Date and time the record was last updated.");
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.CustomerId).HasName("PK_Customer_CustomerID");
+ entity.HasKey(e => e.BillOfMaterialsId)
+ .HasName("PK_BillOfMaterials_BillOfMaterialsID")
+ .IsClustered(false);
- entity.ToTable("Customer", "SalesLT", tb => tb.HasComment("Customer information."));
+ entity.ToTable("BillOfMaterials", "Production", tb => tb.HasComment("Items required to make bicycles and bicycle subassemblies. It identifies the heirarchical relationship between a parent product and its components."));
- entity.Property(e => e.CustomerId).HasComment("Primary key for Customer records.");
- entity.Property(e => e.CompanyName).HasComment("The customer's organization.");
- entity.Property(e => e.EmailAddress).HasComment("E-mail address for the person.");
- entity.Property(e => e.FirstName).HasComment("First name of the person.");
- entity.Property(e => e.LastName).HasComment("Last name of the person.");
- entity.Property(e => e.MiddleName).HasComment("Middle name or middle initial of the person.");
+ entity.HasIndex(e => new { e.ProductAssemblyId, e.ComponentId, e.StartDate }, "AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate")
+ .IsUnique()
+ .IsClustered();
+
+ entity.Property(e => e.BillOfMaterialsId).HasComment("Primary key for BillOfMaterials records.");
+ entity.Property(e => e.Bomlevel).HasComment("Indicates the depth the component is from its parent (AssemblyID).");
+ entity.Property(e => e.ComponentId).HasComment("Component identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.EndDate).HasComment("Date the component stopped being used in the assembly item.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.PerAssemblyQty)
+ .HasDefaultValue(1.00m)
+ .HasComment("Quantity of the component needed to create the assembly.");
+ entity.Property(e => e.ProductAssemblyId).HasComment("Parent product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.StartDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date the component started being used in the assembly item.");
+ entity.Property(e => e.UnitMeasureCode)
+ .IsFixedLength()
+ .HasComment("Standard code identifying the unit of measure for the quantity.");
+
+ entity.HasOne(d => d.Component).WithMany(p => p.BillOfMaterialComponents).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.UnitMeasureCodeNavigation).WithMany(p => p.BillOfMaterials).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_BusinessEntity_BusinessEntityID");
+
+ entity.ToTable("BusinessEntity", "Person", tb => tb.HasComment("Source of the ID that connects vendors, customers, and employees with address and contact information."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Primary key for all customers, vendors, and employees.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.NameStyle).HasComment("0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order.");
- entity.Property(e => e.PasswordHash).HasComment("Password for the e-mail account.");
- entity.Property(e => e.PasswordSalt).HasComment("Random value concatenated with the password string before the password is hashed.");
- entity.Property(e => e.Phone).HasComment("Phone number associated with the person.");
entity.Property(e => e.Rowguid)
.HasDefaultValueSql("(newid())")
.HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
- entity.Property(e => e.SalesPerson).HasComment("The customer's sales person, an employee of AdventureWorks Cycles.");
- entity.Property(e => e.Suffix).HasComment("Surname suffix. For example, Sr. or Jr.");
- entity.Property(e => e.Title).HasComment("A courtesy title. For example, Mr. or Ms.");
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => new { e.CustomerId, e.AddressId }).HasName("PK_CustomerAddress_CustomerID_AddressID");
+ entity.HasKey(e => new { e.BusinessEntityId, e.AddressId, e.AddressTypeId }).HasName("PK_BusinessEntityAddress_BusinessEntityID_AddressID_AddressTypeID");
- entity.ToTable("CustomerAddress", "SalesLT", tb => tb.HasComment("Cross-reference table mapping customers to their address(es)."));
+ entity.ToTable("BusinessEntityAddress", "Person", tb => tb.HasComment("Cross-reference table mapping customers, vendors, and employees to their addresses."));
- entity.Property(e => e.CustomerId).HasComment("Primary key. Foreign key to Customer.CustomerID.");
+ entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Foreign key to BusinessEntity.BusinessEntityID.");
entity.Property(e => e.AddressId).HasComment("Primary key. Foreign key to Address.AddressID.");
- entity.Property(e => e.AddressType).HasComment("The kind of Address. One of: Archive, Billing, Home, Main Office, Primary, Shipping");
+ entity.Property(e => e.AddressTypeId).HasComment("Primary key. Foreign key to AddressType.AddressTypeID.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
@@ -119,206 +275,1397 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
.HasDefaultValueSql("(newid())")
.HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
- entity.HasOne(d => d.Address).WithMany(p => p.CustomerAddresses).OnDelete(DeleteBehavior.ClientSetNull);
+ entity.HasOne(d => d.Address).WithMany(p => p.BusinessEntityAddresses).OnDelete(DeleteBehavior.ClientSetNull);
- entity.HasOne(d => d.Customer).WithMany(p => p.CustomerAddresses).OnDelete(DeleteBehavior.ClientSetNull);
+ entity.HasOne(d => d.AddressType).WithMany(p => p.BusinessEntityAddresses).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.BusinessEntityAddresses).OnDelete(DeleteBehavior.ClientSetNull);
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.ErrorLogId).HasName("PK_ErrorLog_ErrorLogID");
+ entity.HasKey(e => new { e.BusinessEntityId, e.PersonId, e.ContactTypeId }).HasName("PK_BusinessEntityContact_BusinessEntityID_PersonID_ContactTypeID");
- entity.ToTable("ErrorLog", tb => tb.HasComment("Audit table tracking errors in the the AdventureWorks database that are caught by the CATCH block of a TRY...CATCH construct. Data is inserted by stored procedure dbo.uspLogError when it is executed from inside the CATCH block of a TRY...CATCH construct."));
+ entity.ToTable("BusinessEntityContact", "Person", tb => tb.HasComment("Cross-reference table mapping stores, vendors, and employees to people"));
- entity.Property(e => e.ErrorLogId).HasComment("Primary key for ErrorLog records.");
- entity.Property(e => e.ErrorLine).HasComment("The line number at which the error occurred.");
- entity.Property(e => e.ErrorMessage).HasComment("The message text of the error that occurred.");
- entity.Property(e => e.ErrorNumber).HasComment("The error number of the error that occurred.");
- entity.Property(e => e.ErrorProcedure).HasComment("The name of the stored procedure or trigger where the error occurred.");
- entity.Property(e => e.ErrorSeverity).HasComment("The severity of the error that occurred.");
- entity.Property(e => e.ErrorState).HasComment("The state number of the error that occurred.");
- entity.Property(e => e.ErrorTime)
+ entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Foreign key to BusinessEntity.BusinessEntityID.");
+ entity.Property(e => e.PersonId).HasComment("Primary key. Foreign key to Person.BusinessEntityID.");
+ entity.Property(e => e.ContactTypeId).HasComment("Primary key. Foreign key to ContactType.ContactTypeID.");
+ entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
- .HasComment("The date and time at which the error occurred.");
- entity.Property(e => e.UserName).HasComment("The user who executed the batch in which the error occurred.");
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.BusinessEntityContacts).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ContactType).WithMany(p => p.BusinessEntityContacts).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Person).WithMany(p => p.BusinessEntityContacts).OnDelete(DeleteBehavior.ClientSetNull);
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.ProductId).HasName("PK_Product_ProductID");
+ entity.HasKey(e => e.ContactTypeId).HasName("PK_ContactType_ContactTypeID");
- entity.ToTable("Product", "SalesLT", tb => tb.HasComment("Products sold or used in the manfacturing of sold products."));
+ entity.ToTable("ContactType", "Person", tb => tb.HasComment("Lookup table containing the types of business entity contacts."));
- entity.Property(e => e.ProductId).HasComment("Primary key for Product records.");
- entity.Property(e => e.Color).HasComment("Product color.");
- entity.Property(e => e.DiscontinuedDate).HasComment("Date the product was discontinued.");
- entity.Property(e => e.ListPrice).HasComment("Selling price.");
+ entity.Property(e => e.ContactTypeId).HasComment("Primary key for ContactType records.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.Name).HasComment("Name of the product.");
- entity.Property(e => e.ProductCategoryId).HasComment("Product is a member of this product category. Foreign key to ProductCategory.ProductCategoryID. ");
- entity.Property(e => e.ProductModelId).HasComment("Product is a member of this product model. Foreign key to ProductModel.ProductModelID.");
- entity.Property(e => e.ProductNumber).HasComment("Unique product identification number.");
- entity.Property(e => e.Rowguid)
- .HasDefaultValueSql("(newid())")
- .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
- entity.Property(e => e.SellEndDate).HasComment("Date the product was no longer available for sale.");
- entity.Property(e => e.SellStartDate).HasComment("Date the product was available for sale.");
- entity.Property(e => e.Size).HasComment("Product size.");
- entity.Property(e => e.StandardCost).HasComment("Standard cost of the product.");
- entity.Property(e => e.ThumbNailPhoto).HasComment("Small image of the product.");
- entity.Property(e => e.ThumbnailPhotoFileName).HasComment("Small image file name.");
- entity.Property(e => e.Weight).HasComment("Product weight.");
+ entity.Property(e => e.Name).HasComment("Contact type description.");
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.ProductCategoryId).HasName("PK_ProductCategory_ProductCategoryID");
+ entity.HasKey(e => e.CountryRegionCode).HasName("PK_CountryRegion_CountryRegionCode");
- entity.ToTable("ProductCategory", "SalesLT", tb => tb.HasComment("High-level product categorization."));
+ entity.ToTable("CountryRegion", "Person", tb => tb.HasComment("Lookup table containing the ISO standard codes for countries and regions."));
- entity.Property(e => e.ProductCategoryId).HasComment("Primary key for ProductCategory records.");
+ entity.Property(e => e.CountryRegionCode).HasComment("ISO standard code for countries and regions.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.Name).HasComment("Category description.");
- entity.Property(e => e.ParentProductCategoryId).HasComment("Product category identification number of immediate ancestor category. Foreign key to ProductCategory.ProductCategoryID.");
- entity.Property(e => e.Rowguid)
- .HasDefaultValueSql("(newid())")
- .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.Name).HasComment("Country or region name.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.CountryRegionCode, e.CurrencyCode }).HasName("PK_CountryRegionCurrency_CountryRegionCode_CurrencyCode");
+
+ entity.ToTable("CountryRegionCurrency", "Sales", tb => tb.HasComment("Cross-reference table mapping ISO currency codes to a country or region."));
+
+ entity.Property(e => e.CountryRegionCode).HasComment("ISO code for countries and regions. Foreign key to CountryRegion.CountryRegionCode.");
+ entity.Property(e => e.CurrencyCode)
+ .IsFixedLength()
+ .HasComment("ISO standard currency code. Foreign key to Currency.CurrencyCode.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.CountryRegionCodeNavigation).WithMany(p => p.CountryRegionCurrencies).OnDelete(DeleteBehavior.ClientSetNull);
- entity.HasOne(d => d.ParentProductCategory).WithMany(p => p.InverseParentProductCategory).HasConstraintName("FK_ProductCategory_ProductCategory_ParentProductCategoryID_ProductCategoryID");
+ entity.HasOne(d => d.CurrencyCodeNavigation).WithMany(p => p.CountryRegionCurrencies).OnDelete(DeleteBehavior.ClientSetNull);
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.ProductDescriptionId).HasName("PK_ProductDescription_ProductDescriptionID");
+ entity.HasKey(e => e.CreditCardId).HasName("PK_CreditCard_CreditCardID");
- entity.ToTable("ProductDescription", "SalesLT", tb => tb.HasComment("Product descriptions in several languages."));
+ entity.ToTable("CreditCard", "Sales", tb => tb.HasComment("Customer credit card information."));
- entity.Property(e => e.ProductDescriptionId).HasComment("Primary key for ProductDescription records.");
- entity.Property(e => e.Description).HasComment("Description of the product.");
+ entity.Property(e => e.CreditCardId).HasComment("Primary key for CreditCard records.");
+ entity.Property(e => e.CardNumber).HasComment("Credit card number.");
+ entity.Property(e => e.CardType).HasComment("Credit card name.");
+ entity.Property(e => e.ExpMonth).HasComment("Credit card expiration month.");
+ entity.Property(e => e.ExpYear).HasComment("Credit card expiration year.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.Rowguid)
- .HasDefaultValueSql("(newid())")
- .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.ProductModelId).HasName("PK_ProductModel_ProductModelID");
+ entity.HasKey(e => e.CultureId).HasName("PK_Culture_CultureID");
+
+ entity.ToTable("Culture", "Production", tb => tb.HasComment("Lookup table containing the languages in which some AdventureWorks data is stored."));
- entity.Property(e => e.ModifiedDate).HasDefaultValueSql("(getdate())");
- entity.Property(e => e.Rowguid).HasDefaultValueSql("(newid())");
+ entity.Property(e => e.CultureId)
+ .IsFixedLength()
+ .HasComment("Primary key for Culture records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Culture description.");
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => new { e.ProductModelId, e.ProductDescriptionId, e.Culture }).HasName("PK_ProductModelProductDescription_ProductModelID_ProductDescriptionID_Culture");
+ entity.HasKey(e => e.CurrencyCode).HasName("PK_Currency_CurrencyCode");
- entity.ToTable("ProductModelProductDescription", "SalesLT", tb => tb.HasComment("Cross-reference table mapping product descriptions and the language the description is written in."));
+ entity.ToTable("Currency", "Sales", tb => tb.HasComment("Lookup table containing standard ISO currencies."));
- entity.Property(e => e.ProductModelId).HasComment("Primary key. Foreign key to ProductModel.ProductModelID.");
- entity.Property(e => e.ProductDescriptionId).HasComment("Primary key. Foreign key to ProductDescription.ProductDescriptionID.");
- entity.Property(e => e.Culture)
+ entity.Property(e => e.CurrencyCode)
+ .IsFixedLength()
+ .HasComment("The ISO code for the Currency.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Currency name.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.CurrencyRateId).HasName("PK_CurrencyRate_CurrencyRateID");
+
+ entity.ToTable("CurrencyRate", "Sales", tb => tb.HasComment("Currency exchange rates."));
+
+ entity.Property(e => e.CurrencyRateId).HasComment("Primary key for CurrencyRate records.");
+ entity.Property(e => e.AverageRate).HasComment("Average exchange rate for the day.");
+ entity.Property(e => e.CurrencyRateDate).HasComment("Date and time the exchange rate was obtained.");
+ entity.Property(e => e.EndOfDayRate).HasComment("Final exchange rate for the day.");
+ entity.Property(e => e.FromCurrencyCode)
.IsFixedLength()
- .HasComment("The culture for which the description is written");
+ .HasComment("Exchange rate was converted from this currency code.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.Rowguid).HasDefaultValueSql("(newid())");
+ entity.Property(e => e.ToCurrencyCode)
+ .IsFixedLength()
+ .HasComment("Exchange rate was converted to this currency code.");
- entity.HasOne(d => d.ProductDescription).WithMany(p => p.ProductModelProductDescriptions).OnDelete(DeleteBehavior.ClientSetNull);
+ entity.HasOne(d => d.FromCurrencyCodeNavigation).WithMany(p => p.CurrencyRateFromCurrencyCodeNavigations).OnDelete(DeleteBehavior.ClientSetNull);
- entity.HasOne(d => d.ProductModel).WithMany(p => p.ProductModelProductDescriptions).OnDelete(DeleteBehavior.ClientSetNull);
+ entity.HasOne(d => d.ToCurrencyCodeNavigation).WithMany(p => p.CurrencyRateToCurrencyCodeNavigations).OnDelete(DeleteBehavior.ClientSetNull);
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => new { e.SalesOrderId, e.SalesOrderDetailId }).HasName("PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID");
+ entity.HasKey(e => e.CustomerId).HasName("PK_Customer_CustomerID");
- entity.ToTable("SalesOrderDetail", "SalesLT", tb =>
- {
- tb.HasComment("Individual products associated with a specific sales order. See SalesOrderHeader.");
- tb.HasTrigger("iduSalesOrderDetail");
- });
+ entity.ToTable("Customer", "Sales", tb => tb.HasComment("Current customer information. Also see the Person and Store tables."));
- entity.Property(e => e.SalesOrderId).HasComment("Primary key. Foreign key to SalesOrderHeader.SalesOrderID.");
- entity.Property(e => e.SalesOrderDetailId)
+ entity.Property(e => e.CustomerId).HasComment("Primary key.");
+ entity.Property(e => e.AccountNumber)
+ .HasComputedColumnSql("(isnull('AW'+[dbo].[ufnLeadingZeros]([CustomerID]),''))", false)
+ .HasComment("Unique number identifying the customer assigned by the accounting system.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.PersonId).HasComment("Foreign key to Person.BusinessEntityID");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.StoreId).HasComment("Foreign key to Store.BusinessEntityID");
+ entity.Property(e => e.TerritoryId).HasComment("ID of the territory in which the customer is located. Foreign key to SalesTerritory.SalesTerritoryID.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.DatabaseLogId)
+ .HasName("PK_DatabaseLog_DatabaseLogID")
+ .IsClustered(false);
+
+ entity.ToTable("DatabaseLog", tb => tb.HasComment("Audit table tracking all DDL changes made to the AdventureWorks database. Data is captured by the database trigger ddlDatabaseTriggerLog."));
+
+ entity.Property(e => e.DatabaseLogId).HasComment("Primary key for DatabaseLog records.");
+ entity.Property(e => e.DatabaseUser).HasComment("The user who implemented the DDL change.");
+ entity.Property(e => e.Event).HasComment("The type of DDL statement that was executed.");
+ entity.Property(e => e.Object).HasComment("The object that was changed by the DDL statment.");
+ entity.Property(e => e.PostTime).HasComment("The date and time the DDL change occurred.");
+ entity.Property(e => e.Schema).HasComment("The schema to which the changed object belongs.");
+ entity.Property(e => e.Tsql).HasComment("The exact Transact-SQL statement that was executed.");
+ entity.Property(e => e.XmlEvent).HasComment("The raw XML data generated by database trigger.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.DepartmentId).HasName("PK_Department_DepartmentID");
+
+ entity.ToTable("Department", "HumanResources", tb => tb.HasComment("Lookup table containing the departments within the Adventure Works Cycles company."));
+
+ entity.Property(e => e.DepartmentId).HasComment("Primary key for Department records.");
+ entity.Property(e => e.GroupName).HasComment("Name of the group to which the department belongs.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Name of the department.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.EmailAddressId }).HasName("PK_EmailAddress_BusinessEntityID_EmailAddressID");
+
+ entity.ToTable("EmailAddress", "Person", tb => tb.HasComment("Where to send a person email."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Person associated with this email address. Foreign key to Person.BusinessEntityID");
+ entity.Property(e => e.EmailAddressId)
.ValueGeneratedOnAdd()
- .HasComment("Primary key. One incremental unique number per product sold.");
- entity.Property(e => e.LineTotal)
- .HasComputedColumnSql("(isnull(([UnitPrice]*((1.0)-[UnitPriceDiscount]))*[OrderQty],(0.0)))", false)
- .HasComment("Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty.");
+ .HasComment("Primary key. ID of this email address.");
+ entity.Property(e => e.EmailAddress1).HasComment("E-mail address for the person.");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.OrderQty).HasComment("Quantity ordered per product.");
- entity.Property(e => e.ProductId).HasComment("Product sold to customer. Foreign key to Product.ProductID.");
entity.Property(e => e.Rowguid)
.HasDefaultValueSql("(newid())")
.HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
- entity.Property(e => e.UnitPrice).HasComment("Selling price of a single product.");
- entity.Property(e => e.UnitPriceDiscount).HasComment("Discount amount.");
- entity.HasOne(d => d.Product).WithMany(p => p.SalesOrderDetails).OnDelete(DeleteBehavior.ClientSetNull);
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.EmailAddresses).OnDelete(DeleteBehavior.ClientSetNull);
});
- modelBuilder.Entity(entity =>
+ modelBuilder.Entity(entity =>
{
- entity.HasKey(e => e.SalesOrderId).HasName("PK_SalesOrderHeader_SalesOrderID");
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_Employee_BusinessEntityID");
- entity.ToTable("SalesOrderHeader", "SalesLT", tb =>
+ entity.ToTable("Employee", "HumanResources", tb =>
{
- tb.HasComment("General sales order information.");
- tb.HasTrigger("uSalesOrderHeader");
+ tb.HasComment("Employee information such as salary, department, and title.");
+ tb.HasTrigger("dEmployee");
});
- entity.Property(e => e.SalesOrderId).HasComment("Primary key.");
- entity.Property(e => e.AccountNumber).HasComment("Financial accounting number reference.");
- entity.Property(e => e.BillToAddressId).HasComment("The ID of the location to send invoices. Foreign key to the Address table.");
- entity.Property(e => e.Comment).HasComment("Sales representative comments.");
- entity.Property(e => e.CreditCardApprovalCode).HasComment("Approval code provided by the credit card company.");
- entity.Property(e => e.CustomerId).HasComment("Customer identification number. Foreign key to Customer.CustomerID.");
- entity.Property(e => e.DueDate).HasComment("Date the order is due to the customer.");
- entity.Property(e => e.Freight).HasComment("Shipping cost.");
+ entity.Property(e => e.BusinessEntityId)
+ .ValueGeneratedNever()
+ .HasComment("Primary key for Employee records. Foreign key to BusinessEntity.BusinessEntityID.");
+ entity.Property(e => e.BirthDate).HasComment("Date of birth.");
+ entity.Property(e => e.CurrentFlag)
+ .HasDefaultValue(true)
+ .HasComment("0 = Inactive, 1 = Active");
+ entity.Property(e => e.Gender)
+ .IsFixedLength()
+ .HasComment("M = Male, F = Female");
+ entity.Property(e => e.HireDate).HasComment("Employee hired on this date.");
+ entity.Property(e => e.JobTitle).HasComment("Work title such as Buyer or Sales Representative.");
+ entity.Property(e => e.LoginId).HasComment("Network login.");
+ entity.Property(e => e.MaritalStatus)
+ .IsFixedLength()
+ .HasComment("M = Married, S = Single");
entity.Property(e => e.ModifiedDate)
.HasDefaultValueSql("(getdate())")
.HasComment("Date and time the record was last updated.");
- entity.Property(e => e.OnlineOrderFlag)
- .HasDefaultValue(true)
- .HasComment("0 = Order placed by sales person. 1 = Order placed online by customer.");
- entity.Property(e => e.OrderDate)
- .HasDefaultValueSql("(getdate())")
- .HasComment("Dates the sales order was created.");
- entity.Property(e => e.PurchaseOrderNumber).HasComment("Customer purchase order number reference. ");
- entity.Property(e => e.RevisionNumber).HasComment("Incremental number to track changes to the sales order over time.");
+ entity.Property(e => e.NationalIdnumber).HasComment("Unique national identification number such as a social security number.");
+ entity.Property(e => e.OrganizationLevel)
+ .HasComputedColumnSql("([OrganizationNode].[GetLevel]())", false)
+ .HasComment("The depth of the employee in the corporate hierarchy.");
entity.Property(e => e.Rowguid)
.HasDefaultValueSql("(newid())")
.HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
- entity.Property(e => e.SalesOrderNumber)
- .HasComputedColumnSql("(isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID]),N'*** ERROR ***'))", false)
- .HasComment("Unique sales order identification number.");
- entity.Property(e => e.ShipDate).HasComment("Date the order was shipped to the customer.");
- entity.Property(e => e.ShipMethod).HasComment("Shipping method. Foreign key to ShipMethod.ShipMethodID.");
- entity.Property(e => e.ShipToAddressId).HasComment("The ID of the location to send goods. Foreign key to the Address table.");
- entity.Property(e => e.Status)
- .HasDefaultValue((byte)1)
- .HasComment("Order current status. 1 = In process; 2 = Approved; 3 = Backordered; 4 = Rejected; 5 = Shipped; 6 = Cancelled");
- entity.Property(e => e.SubTotal).HasComment("Sales subtotal. Computed as SUM(SalesOrderDetail.LineTotal)for the appropriate SalesOrderID.");
- entity.Property(e => e.TaxAmt).HasComment("Tax amount.");
- entity.Property(e => e.TotalDue)
- .HasComputedColumnSql("(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))", false)
- .HasComment("Total due from customer. Computed as Subtotal + TaxAmt + Freight.");
+ entity.Property(e => e.SalariedFlag)
+ .HasDefaultValue(true)
+ .HasComment("Job classification. 0 = Hourly, not exempt from collective bargaining. 1 = Salaried, exempt from collective bargaining.");
+ entity.Property(e => e.SickLeaveHours).HasComment("Number of available sick leave hours.");
+ entity.Property(e => e.VacationHours).HasComment("Number of available vacation hours.");
- entity.HasOne(d => d.BillToAddress).WithMany(p => p.SalesOrderHeaderBillToAddresses).HasConstraintName("FK_SalesOrderHeader_Address_BillTo_AddressID");
+ entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Employee).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.StartDate, e.DepartmentId, e.ShiftId }).HasName("PK_EmployeeDepartmentHistory_BusinessEntityID_StartDate_DepartmentID");
+
+ entity.ToTable("EmployeeDepartmentHistory", "HumanResources", tb => tb.HasComment("Employee department transfers."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Employee identification number. Foreign key to Employee.BusinessEntityID.");
+ entity.Property(e => e.StartDate).HasComment("Date the employee started work in the department.");
+ entity.Property(e => e.DepartmentId).HasComment("Department in which the employee worked including currently. Foreign key to Department.DepartmentID.");
+ entity.Property(e => e.ShiftId).HasComment("Identifies which 8-hour shift the employee works. Foreign key to Shift.Shift.ID.");
+ entity.Property(e => e.EndDate).HasComment("Date the employee left the department. NULL = Current department.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.EmployeeDepartmentHistories).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Department).WithMany(p => p.EmployeeDepartmentHistories).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Shift).WithMany(p => p.EmployeeDepartmentHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.RateChangeDate }).HasName("PK_EmployeePayHistory_BusinessEntityID_RateChangeDate");
+
+ entity.ToTable("EmployeePayHistory", "HumanResources", tb => tb.HasComment("Employee pay history."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Employee identification number. Foreign key to Employee.BusinessEntityID.");
+ entity.Property(e => e.RateChangeDate).HasComment("Date the change in pay is effective");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.PayFrequency).HasComment("1 = Salary received monthly, 2 = Salary received biweekly");
+ entity.Property(e => e.Rate).HasComment("Salary hourly rate.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.EmployeePayHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ErrorLogId).HasName("PK_ErrorLog_ErrorLogID");
+
+ entity.ToTable("ErrorLog", tb => tb.HasComment("Audit table tracking errors in the the AdventureWorks database that are caught by the CATCH block of a TRY...CATCH construct. Data is inserted by stored procedure dbo.uspLogError when it is executed from inside the CATCH block of a TRY...CATCH construct."));
+
+ entity.Property(e => e.ErrorLogId).HasComment("Primary key for ErrorLog records.");
+ entity.Property(e => e.ErrorLine).HasComment("The line number at which the error occurred.");
+ entity.Property(e => e.ErrorMessage).HasComment("The message text of the error that occurred.");
+ entity.Property(e => e.ErrorNumber).HasComment("The error number of the error that occurred.");
+ entity.Property(e => e.ErrorProcedure).HasComment("The name of the stored procedure or trigger where the error occurred.");
+ entity.Property(e => e.ErrorSeverity).HasComment("The severity of the error that occurred.");
+ entity.Property(e => e.ErrorState).HasComment("The state number of the error that occurred.");
+ entity.Property(e => e.ErrorTime)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("The date and time at which the error occurred.");
+ entity.Property(e => e.UserName).HasComment("The user who executed the batch in which the error occurred.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.IllustrationId).HasName("PK_Illustration_IllustrationID");
+
+ entity.ToTable("Illustration", "Production", tb => tb.HasComment("Bicycle assembly diagrams."));
+
+ entity.Property(e => e.IllustrationId).HasComment("Primary key for Illustration records.");
+ entity.Property(e => e.Diagram).HasComment("Illustrations used in manufacturing instructions. Stored as XML.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.JobCandidateId).HasName("PK_JobCandidate_JobCandidateID");
+
+ entity.ToTable("JobCandidate", "HumanResources", tb => tb.HasComment("Résumés submitted to Human Resources by job applicants."));
+
+ entity.Property(e => e.JobCandidateId).HasComment("Primary key for JobCandidate records.");
+ entity.Property(e => e.BusinessEntityId).HasComment("Employee identification number if applicant was hired. Foreign key to Employee.BusinessEntityID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Resume).HasComment("Résumé in XML format.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.LocationId).HasName("PK_Location_LocationID");
+
+ entity.ToTable("Location", "Production", tb => tb.HasComment("Product inventory and manufacturing locations."));
+
+ entity.Property(e => e.LocationId).HasComment("Primary key for Location records.");
+ entity.Property(e => e.Availability).HasComment("Work capacity (in hours) of the manufacturing location.");
+ entity.Property(e => e.CostRate).HasComment("Standard hourly cost of the manufacturing location.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Location description.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_Password_BusinessEntityID");
+
+ entity.ToTable("Password", "Person", tb => tb.HasComment("One way hashed authentication information"));
+
+ entity.Property(e => e.BusinessEntityId).ValueGeneratedNever();
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.PasswordHash).HasComment("Password for the e-mail account.");
+ entity.Property(e => e.PasswordSalt).HasComment("Random value concatenated with the password string before the password is hashed.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+
+ entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Password).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_Person_BusinessEntityID");
+
+ entity.ToTable("Person", "Person", tb =>
+ {
+ tb.HasComment("Human beings involved with AdventureWorks: employees, customer contacts, and vendor contacts.");
+ tb.HasTrigger("iuPerson");
+ });
+
+ entity.Property(e => e.BusinessEntityId)
+ .ValueGeneratedNever()
+ .HasComment("Primary key for Person records.");
+ entity.Property(e => e.AdditionalContactInfo).HasComment("Additional contact information about the person stored in xml format. ");
+ entity.Property(e => e.Demographics).HasComment("Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis.");
+ entity.Property(e => e.EmailPromotion).HasComment("0 = Contact does not wish to receive e-mail promotions, 1 = Contact does wish to receive e-mail promotions from AdventureWorks, 2 = Contact does wish to receive e-mail promotions from AdventureWorks and selected partners. ");
+ entity.Property(e => e.FirstName).HasComment("First name of the person.");
+ entity.Property(e => e.LastName).HasComment("Last name of the person.");
+ entity.Property(e => e.MiddleName).HasComment("Middle name or middle initial of the person.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.NameStyle).HasComment("0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order.");
+ entity.Property(e => e.PersonType)
+ .IsFixedLength()
+ .HasComment("Primary type of person: SC = Store Contact, IN = Individual (retail) customer, SP = Sales person, EM = Employee (non-sales), VC = Vendor contact, GC = General contact");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.Suffix).HasComment("Surname suffix. For example, Sr. or Jr.");
+ entity.Property(e => e.Title).HasComment("A courtesy title. For example, Mr. or Ms.");
+
+ entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Person).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.CreditCardId }).HasName("PK_PersonCreditCard_BusinessEntityID_CreditCardID");
+
+ entity.ToTable("PersonCreditCard", "Sales", tb => tb.HasComment("Cross-reference table mapping people to their credit card information in the CreditCard table. "));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Business entity identification number. Foreign key to Person.BusinessEntityID.");
+ entity.Property(e => e.CreditCardId).HasComment("Credit card identification number. Foreign key to CreditCard.CreditCardID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.PersonCreditCards).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.CreditCard).WithMany(p => p.PersonCreditCards).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.PhoneNumber, e.PhoneNumberTypeId }).HasName("PK_PersonPhone_BusinessEntityID_PhoneNumber_PhoneNumberTypeID");
+
+ entity.ToTable("PersonPhone", "Person", tb => tb.HasComment("Telephone number and type of a person."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Business entity identification number. Foreign key to Person.BusinessEntityID.");
+ entity.Property(e => e.PhoneNumber).HasComment("Telephone number identification number.");
+ entity.Property(e => e.PhoneNumberTypeId).HasComment("Kind of phone number. Foreign key to PhoneNumberType.PhoneNumberTypeID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.PersonPhones).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.PhoneNumberType).WithMany(p => p.PersonPhones).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.PhoneNumberTypeId).HasName("PK_PhoneNumberType_PhoneNumberTypeID");
+
+ entity.ToTable("PhoneNumberType", "Person", tb => tb.HasComment("Type of phone number of a person."));
+
+ entity.Property(e => e.PhoneNumberTypeId).HasComment("Primary key for telephone number type records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Name of the telephone number type");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductId).HasName("PK_Product_ProductID");
+
+ entity.ToTable("Product", "Production", tb => tb.HasComment("Products sold or used in the manfacturing of sold products."));
+
+ entity.Property(e => e.ProductId).HasComment("Primary key for Product records.");
+ entity.Property(e => e.Class)
+ .IsFixedLength()
+ .HasComment("H = High, M = Medium, L = Low");
+ entity.Property(e => e.Color).HasComment("Product color.");
+ entity.Property(e => e.DaysToManufacture).HasComment("Number of days required to manufacture the product.");
+ entity.Property(e => e.DiscontinuedDate).HasComment("Date the product was discontinued.");
+ entity.Property(e => e.FinishedGoodsFlag)
+ .HasDefaultValue(true)
+ .HasComment("0 = Product is not a salable item. 1 = Product is salable.");
+ entity.Property(e => e.ListPrice).HasComment("Selling price.");
+ entity.Property(e => e.MakeFlag)
+ .HasDefaultValue(true)
+ .HasComment("0 = Product is purchased, 1 = Product is manufactured in-house.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Name of the product.");
+ entity.Property(e => e.ProductLine)
+ .IsFixedLength()
+ .HasComment("R = Road, M = Mountain, T = Touring, S = Standard");
+ entity.Property(e => e.ProductModelId).HasComment("Product is a member of this product model. Foreign key to ProductModel.ProductModelID.");
+ entity.Property(e => e.ProductNumber).HasComment("Unique product identification number.");
+ entity.Property(e => e.ProductSubcategoryId).HasComment("Product is a member of this product subcategory. Foreign key to ProductSubCategory.ProductSubCategoryID. ");
+ entity.Property(e => e.ReorderPoint).HasComment("Inventory level that triggers a purchase order or work order. ");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SafetyStockLevel).HasComment("Minimum inventory quantity. ");
+ entity.Property(e => e.SellEndDate).HasComment("Date the product was no longer available for sale.");
+ entity.Property(e => e.SellStartDate).HasComment("Date the product was available for sale.");
+ entity.Property(e => e.Size).HasComment("Product size.");
+ entity.Property(e => e.SizeUnitMeasureCode)
+ .IsFixedLength()
+ .HasComment("Unit of measure for Size column.");
+ entity.Property(e => e.StandardCost).HasComment("Standard cost of the product.");
+ entity.Property(e => e.Style)
+ .IsFixedLength()
+ .HasComment("W = Womens, M = Mens, U = Universal");
+ entity.Property(e => e.Weight).HasComment("Product weight.");
+ entity.Property(e => e.WeightUnitMeasureCode)
+ .IsFixedLength()
+ .HasComment("Unit of measure for Weight column.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductCategoryId).HasName("PK_ProductCategory_ProductCategoryID");
+
+ entity.ToTable("ProductCategory", "Production", tb => tb.HasComment("High-level product categorization."));
+
+ entity.Property(e => e.ProductCategoryId).HasComment("Primary key for ProductCategory records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Category description.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductId, e.StartDate }).HasName("PK_ProductCostHistory_ProductID_StartDate");
+
+ entity.ToTable("ProductCostHistory", "Production", tb => tb.HasComment("Changes in the cost of a product over time."));
+
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID");
+ entity.Property(e => e.StartDate).HasComment("Product cost start date.");
+ entity.Property(e => e.EndDate).HasComment("Product cost end date.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.StandardCost).HasComment("Standard cost of the product.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ProductCostHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductDescriptionId).HasName("PK_ProductDescription_ProductDescriptionID");
+
+ entity.ToTable("ProductDescription", "Production", tb => tb.HasComment("Product descriptions in several languages."));
+
+ entity.Property(e => e.ProductDescriptionId).HasComment("Primary key for ProductDescription records.");
+ entity.Property(e => e.Description).HasComment("Description of the product.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductId, e.LocationId }).HasName("PK_ProductInventory_ProductID_LocationID");
+
+ entity.ToTable("ProductInventory", "Production", tb => tb.HasComment("Product inventory information."));
+
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.LocationId).HasComment("Inventory location identification number. Foreign key to Location.LocationID. ");
+ entity.Property(e => e.Bin).HasComment("Storage container on a shelf in an inventory location.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Quantity).HasComment("Quantity of products in the inventory location.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.Shelf).HasComment("Storage compartment within an inventory location.");
+
+ entity.HasOne(d => d.Location).WithMany(p => p.ProductInventories).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ProductInventories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductId, e.StartDate }).HasName("PK_ProductListPriceHistory_ProductID_StartDate");
+
+ entity.ToTable("ProductListPriceHistory", "Production", tb => tb.HasComment("Changes in the list price of a product over time."));
+
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID");
+ entity.Property(e => e.StartDate).HasComment("List price start date.");
+ entity.Property(e => e.EndDate).HasComment("List price end date");
+ entity.Property(e => e.ListPrice).HasComment("Product list price.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ProductListPriceHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductModelId).HasName("PK_ProductModel_ProductModelID");
+
+ entity.ToTable("ProductModel", "Production", tb => tb.HasComment("Product model classification."));
+
+ entity.Property(e => e.ProductModelId).HasComment("Primary key for ProductModel records.");
+ entity.Property(e => e.CatalogDescription).HasComment("Detailed product catalog information in xml format.");
+ entity.Property(e => e.Instructions).HasComment("Manufacturing instructions in xml format.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Product model description.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductModelId, e.IllustrationId }).HasName("PK_ProductModelIllustration_ProductModelID_IllustrationID");
+
+ entity.ToTable("ProductModelIllustration", "Production", tb => tb.HasComment("Cross-reference table mapping product models and illustrations."));
+
+ entity.Property(e => e.ProductModelId).HasComment("Primary key. Foreign key to ProductModel.ProductModelID.");
+ entity.Property(e => e.IllustrationId).HasComment("Primary key. Foreign key to Illustration.IllustrationID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.Illustration).WithMany(p => p.ProductModelIllustrations).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ProductModel).WithMany(p => p.ProductModelIllustrations).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductModelId, e.ProductDescriptionId, e.CultureId }).HasName("PK_ProductModelProductDescriptionCulture_ProductModelID_ProductDescriptionID_CultureID");
+
+ entity.ToTable("ProductModelProductDescriptionCulture", "Production", tb => tb.HasComment("Cross-reference table mapping product descriptions and the language the description is written in."));
+
+ entity.Property(e => e.ProductModelId).HasComment("Primary key. Foreign key to ProductModel.ProductModelID.");
+ entity.Property(e => e.ProductDescriptionId).HasComment("Primary key. Foreign key to ProductDescription.ProductDescriptionID.");
+ entity.Property(e => e.CultureId)
+ .IsFixedLength()
+ .HasComment("Culture identification number. Foreign key to Culture.CultureID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.Culture).WithMany(p => p.ProductModelProductDescriptionCultures).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ProductDescription).WithMany(p => p.ProductModelProductDescriptionCultures).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ProductModel).WithMany(p => p.ProductModelProductDescriptionCultures).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductPhotoId).HasName("PK_ProductPhoto_ProductPhotoID");
+
+ entity.ToTable("ProductPhoto", "Production", tb => tb.HasComment("Product images."));
+
+ entity.Property(e => e.ProductPhotoId).HasComment("Primary key for ProductPhoto records.");
+ entity.Property(e => e.LargePhoto).HasComment("Large image of the product.");
+ entity.Property(e => e.LargePhotoFileName).HasComment("Large image file name.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.ThumbNailPhoto).HasComment("Small image of the product.");
+ entity.Property(e => e.ThumbnailPhotoFileName).HasComment("Small image file name.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductId, e.ProductPhotoId })
+ .HasName("PK_ProductProductPhoto_ProductID_ProductPhotoID")
+ .IsClustered(false);
+
+ entity.ToTable("ProductProductPhoto", "Production", tb => tb.HasComment("Cross-reference table mapping products and product photos."));
+
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.ProductPhotoId).HasComment("Product photo identification number. Foreign key to ProductPhoto.ProductPhotoID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Primary).HasComment("0 = Photo is not the principal image. 1 = Photo is the principal image.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ProductProductPhotos).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ProductPhoto).WithMany(p => p.ProductProductPhotos).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductReviewId).HasName("PK_ProductReview_ProductReviewID");
+
+ entity.ToTable("ProductReview", "Production", tb => tb.HasComment("Customer reviews of products they have purchased."));
+
+ entity.Property(e => e.ProductReviewId).HasComment("Primary key for ProductReview records.");
+ entity.Property(e => e.Comments).HasComment("Reviewer's comments");
+ entity.Property(e => e.EmailAddress).HasComment("Reviewer's e-mail address.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.Rating).HasComment("Product rating given by the reviewer. Scale is 1 to 5 with 5 as the highest rating.");
+ entity.Property(e => e.ReviewDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date review was submitted.");
+ entity.Property(e => e.ReviewerName).HasComment("Name of the reviewer.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ProductReviews).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ProductSubcategoryId).HasName("PK_ProductSubcategory_ProductSubcategoryID");
+
+ entity.ToTable("ProductSubcategory", "Production", tb => tb.HasComment("Product subcategories. See ProductCategory table."));
+
+ entity.Property(e => e.ProductSubcategoryId).HasComment("Primary key for ProductSubcategory records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Subcategory description.");
+ entity.Property(e => e.ProductCategoryId).HasComment("Product category identification number. Foreign key to ProductCategory.ProductCategoryID.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+
+ entity.HasOne(d => d.ProductCategory).WithMany(p => p.ProductSubcategories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.ProductId, e.BusinessEntityId }).HasName("PK_ProductVendor_ProductID_BusinessEntityID");
+
+ entity.ToTable("ProductVendor", "Purchasing", tb => tb.HasComment("Cross-reference table mapping vendors with the products they supply."));
+
+ entity.Property(e => e.ProductId).HasComment("Primary key. Foreign key to Product.ProductID.");
+ entity.Property(e => e.BusinessEntityId).HasComment("Primary key. Foreign key to Vendor.BusinessEntityID.");
+ entity.Property(e => e.AverageLeadTime).HasComment("The average span of time (in days) between placing an order with the vendor and receiving the purchased product.");
+ entity.Property(e => e.LastReceiptCost).HasComment("The selling price when last purchased.");
+ entity.Property(e => e.LastReceiptDate).HasComment("Date the product was last received by the vendor.");
+ entity.Property(e => e.MaxOrderQty).HasComment("The minimum quantity that should be ordered.");
+ entity.Property(e => e.MinOrderQty).HasComment("The maximum quantity that should be ordered.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.OnOrderQty).HasComment("The quantity currently on order.");
+ entity.Property(e => e.StandardPrice).HasComment("The vendor's usual selling price.");
+ entity.Property(e => e.UnitMeasureCode)
+ .IsFixedLength()
+ .HasComment("The product's unit of measure.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.ProductVendors).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ProductVendors).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.UnitMeasureCodeNavigation).WithMany(p => p.ProductVendors).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.PurchaseOrderId, e.PurchaseOrderDetailId }).HasName("PK_PurchaseOrderDetail_PurchaseOrderID_PurchaseOrderDetailID");
+
+ entity.ToTable("PurchaseOrderDetail", "Purchasing", tb =>
+ {
+ tb.HasComment("Individual products associated with a specific purchase order. See PurchaseOrderHeader.");
+ tb.HasTrigger("iPurchaseOrderDetail");
+ tb.HasTrigger("uPurchaseOrderDetail");
+ });
+
+ entity.Property(e => e.PurchaseOrderId).HasComment("Primary key. Foreign key to PurchaseOrderHeader.PurchaseOrderID.");
+ entity.Property(e => e.PurchaseOrderDetailId)
+ .ValueGeneratedOnAdd()
+ .HasComment("Primary key. One line number per purchased product.");
+ entity.Property(e => e.DueDate).HasComment("Date the product is expected to be received.");
+ entity.Property(e => e.LineTotal)
+ .HasComputedColumnSql("(isnull([OrderQty]*[UnitPrice],(0.00)))", false)
+ .HasComment("Per product subtotal. Computed as OrderQty * UnitPrice.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.OrderQty).HasComment("Quantity ordered.");
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.ReceivedQty).HasComment("Quantity actually received from the vendor.");
+ entity.Property(e => e.RejectedQty).HasComment("Quantity rejected during inspection.");
+ entity.Property(e => e.StockedQty)
+ .HasComputedColumnSql("(isnull([ReceivedQty]-[RejectedQty],(0.00)))", false)
+ .HasComment("Quantity accepted into inventory. Computed as ReceivedQty - RejectedQty.");
+ entity.Property(e => e.UnitPrice).HasComment("Vendor's selling price of a single product.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.PurchaseOrderDetails).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.PurchaseOrder).WithMany(p => p.PurchaseOrderDetails).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.PurchaseOrderId).HasName("PK_PurchaseOrderHeader_PurchaseOrderID");
+
+ entity.ToTable("PurchaseOrderHeader", "Purchasing", tb =>
+ {
+ tb.HasComment("General purchase order information. See PurchaseOrderDetail.");
+ tb.HasTrigger("uPurchaseOrderHeader");
+ });
+
+ entity.Property(e => e.PurchaseOrderId).HasComment("Primary key.");
+ entity.Property(e => e.EmployeeId).HasComment("Employee who created the purchase order. Foreign key to Employee.BusinessEntityID.");
+ entity.Property(e => e.Freight).HasComment("Shipping cost.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.OrderDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Purchase order creation date.");
+ entity.Property(e => e.RevisionNumber).HasComment("Incremental number to track changes to the purchase order over time.");
+ entity.Property(e => e.ShipDate).HasComment("Estimated shipment date from the vendor.");
+ entity.Property(e => e.ShipMethodId).HasComment("Shipping method. Foreign key to ShipMethod.ShipMethodID.");
+ entity.Property(e => e.Status)
+ .HasDefaultValue((byte)1)
+ .HasComment("Order current status. 1 = Pending; 2 = Approved; 3 = Rejected; 4 = Complete");
+ entity.Property(e => e.SubTotal).HasComment("Purchase order subtotal. Computed as SUM(PurchaseOrderDetail.LineTotal)for the appropriate PurchaseOrderID.");
+ entity.Property(e => e.TaxAmt).HasComment("Tax amount.");
+ entity.Property(e => e.TotalDue)
+ .HasComputedColumnSql("(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))", true)
+ .HasComment("Total due to vendor. Computed as Subtotal + TaxAmt + Freight.");
+ entity.Property(e => e.VendorId).HasComment("Vendor with whom the purchase order is placed. Foreign key to Vendor.BusinessEntityID.");
+
+ entity.HasOne(d => d.Employee).WithMany(p => p.PurchaseOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ShipMethod).WithMany(p => p.PurchaseOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Vendor).WithMany(p => p.PurchaseOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.SalesOrderId, e.SalesOrderDetailId }).HasName("PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID");
+
+ entity.ToTable("SalesOrderDetail", "Sales", tb =>
+ {
+ tb.HasComment("Individual products associated with a specific sales order. See SalesOrderHeader.");
+ tb.HasTrigger("iduSalesOrderDetail");
+ });
+
+ entity.Property(e => e.SalesOrderId).HasComment("Primary key. Foreign key to SalesOrderHeader.SalesOrderID.");
+ entity.Property(e => e.SalesOrderDetailId)
+ .ValueGeneratedOnAdd()
+ .HasComment("Primary key. One incremental unique number per product sold.");
+ entity.Property(e => e.CarrierTrackingNumber).HasComment("Shipment tracking number supplied by the shipper.");
+ entity.Property(e => e.LineTotal)
+ .HasComputedColumnSql("(isnull(([UnitPrice]*((1.0)-[UnitPriceDiscount]))*[OrderQty],(0.0)))", false)
+ .HasComment("Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.OrderQty).HasComment("Quantity ordered per product.");
+ entity.Property(e => e.ProductId).HasComment("Product sold to customer. Foreign key to Product.ProductID.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SpecialOfferId).HasComment("Promotional code. Foreign key to SpecialOffer.SpecialOfferID.");
+ entity.Property(e => e.UnitPrice).HasComment("Selling price of a single product.");
+ entity.Property(e => e.UnitPriceDiscount).HasComment("Discount amount.");
+
+ entity.HasOne(d => d.SpecialOfferProduct).WithMany(p => p.SalesOrderDetails)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("FK_SalesOrderDetail_SpecialOfferProduct_SpecialOfferIDProductID");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.SalesOrderId).HasName("PK_SalesOrderHeader_SalesOrderID");
+
+ entity.ToTable("SalesOrderHeader", "Sales", tb =>
+ {
+ tb.HasComment("General sales order information.");
+ tb.HasTrigger("uSalesOrderHeader");
+ });
+
+ entity.Property(e => e.SalesOrderId).HasComment("Primary key.");
+ entity.Property(e => e.AccountNumber).HasComment("Financial accounting number reference.");
+ entity.Property(e => e.BillToAddressId).HasComment("Customer billing address. Foreign key to Address.AddressID.");
+ entity.Property(e => e.Comment).HasComment("Sales representative comments.");
+ entity.Property(e => e.CreditCardApprovalCode).HasComment("Approval code provided by the credit card company.");
+ entity.Property(e => e.CreditCardId).HasComment("Credit card identification number. Foreign key to CreditCard.CreditCardID.");
+ entity.Property(e => e.CurrencyRateId).HasComment("Currency exchange rate used. Foreign key to CurrencyRate.CurrencyRateID.");
+ entity.Property(e => e.CustomerId).HasComment("Customer identification number. Foreign key to Customer.BusinessEntityID.");
+ entity.Property(e => e.DueDate).HasComment("Date the order is due to the customer.");
+ entity.Property(e => e.Freight).HasComment("Shipping cost.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.OnlineOrderFlag)
+ .HasDefaultValue(true)
+ .HasComment("0 = Order placed by sales person. 1 = Order placed online by customer.");
+ entity.Property(e => e.OrderDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Dates the sales order was created.");
+ entity.Property(e => e.PurchaseOrderNumber).HasComment("Customer purchase order number reference. ");
+ entity.Property(e => e.RevisionNumber).HasComment("Incremental number to track changes to the sales order over time.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SalesOrderNumber)
+ .HasComputedColumnSql("(isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID]),N'*** ERROR ***'))", false)
+ .HasComment("Unique sales order identification number.");
+ entity.Property(e => e.SalesPersonId).HasComment("Sales person who created the sales order. Foreign key to SalesPerson.BusinessEntityID.");
+ entity.Property(e => e.ShipDate).HasComment("Date the order was shipped to the customer.");
+ entity.Property(e => e.ShipMethodId).HasComment("Shipping method. Foreign key to ShipMethod.ShipMethodID.");
+ entity.Property(e => e.ShipToAddressId).HasComment("Customer shipping address. Foreign key to Address.AddressID.");
+ entity.Property(e => e.Status)
+ .HasDefaultValue((byte)1)
+ .HasComment("Order current status. 1 = In process; 2 = Approved; 3 = Backordered; 4 = Rejected; 5 = Shipped; 6 = Cancelled");
+ entity.Property(e => e.SubTotal).HasComment("Sales subtotal. Computed as SUM(SalesOrderDetail.LineTotal)for the appropriate SalesOrderID.");
+ entity.Property(e => e.TaxAmt).HasComment("Tax amount.");
+ entity.Property(e => e.TerritoryId).HasComment("Territory in which the sale was made. Foreign key to SalesTerritory.SalesTerritoryID.");
+ entity.Property(e => e.TotalDue)
+ .HasComputedColumnSql("(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))", false)
+ .HasComment("Total due from customer. Computed as Subtotal + TaxAmt + Freight.");
+
+ entity.HasOne(d => d.BillToAddress).WithMany(p => p.SalesOrderHeaderBillToAddresses).OnDelete(DeleteBehavior.ClientSetNull);
entity.HasOne(d => d.Customer).WithMany(p => p.SalesOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull);
- entity.HasOne(d => d.ShipToAddress).WithMany(p => p.SalesOrderHeaderShipToAddresses).HasConstraintName("FK_SalesOrderHeader_Address_ShipTo_AddressID");
+ entity.HasOne(d => d.ShipMethod).WithMany(p => p.SalesOrderHeaders).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.ShipToAddress).WithMany(p => p.SalesOrderHeaderShipToAddresses).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.SalesOrderId, e.SalesReasonId }).HasName("PK_SalesOrderHeaderSalesReason_SalesOrderID_SalesReasonID");
+
+ entity.ToTable("SalesOrderHeaderSalesReason", "Sales", tb => tb.HasComment("Cross-reference table mapping sales orders to sales reason codes."));
+
+ entity.Property(e => e.SalesOrderId).HasComment("Primary key. Foreign key to SalesOrderHeader.SalesOrderID.");
+ entity.Property(e => e.SalesReasonId).HasComment("Primary key. Foreign key to SalesReason.SalesReasonID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+
+ entity.HasOne(d => d.SalesReason).WithMany(p => p.SalesOrderHeaderSalesReasons).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_SalesPerson_BusinessEntityID");
+
+ entity.ToTable("SalesPerson", "Sales", tb => tb.HasComment("Sales representative current information."));
+
+ entity.Property(e => e.BusinessEntityId)
+ .ValueGeneratedNever()
+ .HasComment("Primary key for SalesPerson records. Foreign key to Employee.BusinessEntityID");
+ entity.Property(e => e.Bonus).HasComment("Bonus due if quota is met.");
+ entity.Property(e => e.CommissionPct).HasComment("Commision percent received per sale.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SalesLastYear).HasComment("Sales total of previous year.");
+ entity.Property(e => e.SalesQuota).HasComment("Projected yearly sales.");
+ entity.Property(e => e.SalesYtd).HasComment("Sales total year to date.");
+ entity.Property(e => e.TerritoryId).HasComment("Territory currently assigned to. Foreign key to SalesTerritory.SalesTerritoryID.");
+
+ entity.HasOne(d => d.BusinessEntity).WithOne(p => p.SalesPerson).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.QuotaDate }).HasName("PK_SalesPersonQuotaHistory_BusinessEntityID_QuotaDate");
+
+ entity.ToTable("SalesPersonQuotaHistory", "Sales", tb => tb.HasComment("Sales performance tracking."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Sales person identification number. Foreign key to SalesPerson.BusinessEntityID.");
+ entity.Property(e => e.QuotaDate).HasComment("Sales quota date.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SalesQuota).HasComment("Sales quota amount.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.SalesPersonQuotaHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.SalesReasonId).HasName("PK_SalesReason_SalesReasonID");
+
+ entity.ToTable("SalesReason", "Sales", tb => tb.HasComment("Lookup table of customer purchase reasons."));
+
+ entity.Property(e => e.SalesReasonId).HasComment("Primary key for SalesReason records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Sales reason description.");
+ entity.Property(e => e.ReasonType).HasComment("Category the sales reason belongs to.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.SalesTaxRateId).HasName("PK_SalesTaxRate_SalesTaxRateID");
+
+ entity.ToTable("SalesTaxRate", "Sales", tb => tb.HasComment("Tax rate lookup table."));
+
+ entity.Property(e => e.SalesTaxRateId).HasComment("Primary key for SalesTaxRate records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Tax rate description.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.StateProvinceId).HasComment("State, province, or country/region the sales tax applies to.");
+ entity.Property(e => e.TaxRate).HasComment("Tax rate amount.");
+ entity.Property(e => e.TaxType).HasComment("1 = Tax applied to retail transactions, 2 = Tax applied to wholesale transactions, 3 = Tax applied to all sales (retail and wholesale) transactions.");
+
+ entity.HasOne(d => d.StateProvince).WithMany(p => p.SalesTaxRates).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.TerritoryId).HasName("PK_SalesTerritory_TerritoryID");
+
+ entity.ToTable("SalesTerritory", "Sales", tb => tb.HasComment("Sales territory lookup table."));
+
+ entity.Property(e => e.TerritoryId).HasComment("Primary key for SalesTerritory records.");
+ entity.Property(e => e.CostLastYear).HasComment("Business costs in the territory the previous year.");
+ entity.Property(e => e.CostYtd).HasComment("Business costs in the territory year to date.");
+ entity.Property(e => e.CountryRegionCode).HasComment("ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. ");
+ entity.Property(e => e.Group).HasComment("Geographic area to which the sales territory belong.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Sales territory description");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SalesLastYear).HasComment("Sales in the territory the previous year.");
+ entity.Property(e => e.SalesYtd).HasComment("Sales in the territory year to date.");
+
+ entity.HasOne(d => d.CountryRegionCodeNavigation).WithMany(p => p.SalesTerritories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.BusinessEntityId, e.StartDate, e.TerritoryId }).HasName("PK_SalesTerritoryHistory_BusinessEntityID_StartDate_TerritoryID");
+
+ entity.ToTable("SalesTerritoryHistory", "Sales", tb => tb.HasComment("Sales representative transfers to other sales territories."));
+
+ entity.Property(e => e.BusinessEntityId).HasComment("Primary key. The sales rep. Foreign key to SalesPerson.BusinessEntityID.");
+ entity.Property(e => e.StartDate).HasComment("Primary key. Date the sales representive started work in the territory.");
+ entity.Property(e => e.TerritoryId).HasComment("Primary key. Territory identification number. Foreign key to SalesTerritory.SalesTerritoryID.");
+ entity.Property(e => e.EndDate).HasComment("Date the sales representative left work in the territory.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+
+ entity.HasOne(d => d.BusinessEntity).WithMany(p => p.SalesTerritoryHistories).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Territory).WithMany(p => p.SalesTerritoryHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ScrapReasonId).HasName("PK_ScrapReason_ScrapReasonID");
+
+ entity.ToTable("ScrapReason", "Production", tb => tb.HasComment("Manufacturing failure reasons lookup table."));
+
+ entity.Property(e => e.ScrapReasonId).HasComment("Primary key for ScrapReason records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Failure description.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ShiftId).HasName("PK_Shift_ShiftID");
+
+ entity.ToTable("Shift", "HumanResources", tb => tb.HasComment("Work shift lookup table."));
+
+ entity.Property(e => e.ShiftId)
+ .ValueGeneratedOnAdd()
+ .HasComment("Primary key for Shift records.");
+ entity.Property(e => e.EndTime).HasComment("Shift end time.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Shift description.");
+ entity.Property(e => e.StartTime).HasComment("Shift start time.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ShipMethodId).HasName("PK_ShipMethod_ShipMethodID");
+
+ entity.ToTable("ShipMethod", "Purchasing", tb => tb.HasComment("Shipping company lookup table."));
+
+ entity.Property(e => e.ShipMethodId).HasComment("Primary key for ShipMethod records.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Shipping company name.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.ShipBase).HasComment("Minimum shipping charge.");
+ entity.Property(e => e.ShipRate).HasComment("Shipping charge per pound.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ShoppingCartItemId).HasName("PK_ShoppingCartItem_ShoppingCartItemID");
+
+ entity.ToTable("ShoppingCartItem", "Sales", tb => tb.HasComment("Contains online customer orders until the order is submitted or cancelled."));
+
+ entity.Property(e => e.ShoppingCartItemId).HasComment("Primary key for ShoppingCartItem records.");
+ entity.Property(e => e.DateCreated)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date the time the record was created.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.ProductId).HasComment("Product ordered. Foreign key to Product.ProductID.");
+ entity.Property(e => e.Quantity)
+ .HasDefaultValue(1)
+ .HasComment("Product quantity ordered.");
+ entity.Property(e => e.ShoppingCartId).HasComment("Shopping cart identification number.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.ShoppingCartItems).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.SpecialOfferId).HasName("PK_SpecialOffer_SpecialOfferID");
+
+ entity.ToTable("SpecialOffer", "Sales", tb => tb.HasComment("Sale discounts lookup table."));
+
+ entity.Property(e => e.SpecialOfferId).HasComment("Primary key for SpecialOffer records.");
+ entity.Property(e => e.Category).HasComment("Group the discount applies to such as Reseller or Customer.");
+ entity.Property(e => e.Description).HasComment("Discount description.");
+ entity.Property(e => e.DiscountPct).HasComment("Discount precentage.");
+ entity.Property(e => e.EndDate).HasComment("Discount end date.");
+ entity.Property(e => e.MaxQty).HasComment("Maximum discount percent allowed.");
+ entity.Property(e => e.MinQty).HasComment("Minimum discount percent allowed.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.StartDate).HasComment("Discount start date.");
+ entity.Property(e => e.Type).HasComment("Discount type category.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.SpecialOfferId, e.ProductId }).HasName("PK_SpecialOfferProduct_SpecialOfferID_ProductID");
+
+ entity.ToTable("SpecialOfferProduct", "Sales", tb => tb.HasComment("Cross-reference table mapping products to special offer discounts."));
+
+ entity.Property(e => e.SpecialOfferId).HasComment("Primary key for SpecialOfferProduct records.");
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.SpecialOfferProducts).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.SpecialOffer).WithMany(p => p.SpecialOfferProducts).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.StateProvinceId).HasName("PK_StateProvince_StateProvinceID");
+
+ entity.ToTable("StateProvince", "Person", tb => tb.HasComment("State and province lookup table."));
+
+ entity.Property(e => e.StateProvinceId).HasComment("Primary key for StateProvince records.");
+ entity.Property(e => e.CountryRegionCode).HasComment("ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode. ");
+ entity.Property(e => e.IsOnlyStateProvinceFlag)
+ .HasDefaultValue(true)
+ .HasComment("0 = StateProvinceCode exists. 1 = StateProvinceCode unavailable, using CountryRegionCode.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("State or province description.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.StateProvinceCode)
+ .IsFixedLength()
+ .HasComment("ISO standard state or province code.");
+ entity.Property(e => e.TerritoryId).HasComment("ID of the territory in which the state or province is located. Foreign key to SalesTerritory.SalesTerritoryID.");
+
+ entity.HasOne(d => d.CountryRegionCodeNavigation).WithMany(p => p.StateProvinces).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.Territory).WithMany(p => p.StateProvinces).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_Store_BusinessEntityID");
+
+ entity.ToTable("Store", "Sales", tb => tb.HasComment("Customers (resellers) of Adventure Works products."));
+
+ entity.Property(e => e.BusinessEntityId)
+ .ValueGeneratedNever()
+ .HasComment("Primary key. Foreign key to Customer.BusinessEntityID.");
+ entity.Property(e => e.Demographics).HasComment("Demographic informationg about the store such as the number of employees, annual sales and store type.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Name of the store.");
+ entity.Property(e => e.Rowguid)
+ .HasDefaultValueSql("(newid())")
+ .HasComment("ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.");
+ entity.Property(e => e.SalesPersonId).HasComment("ID of the sales person assigned to the customer. Foreign key to SalesPerson.BusinessEntityID.");
+
+ entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Store).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.TransactionId).HasName("PK_TransactionHistory_TransactionID");
+
+ entity.ToTable("TransactionHistory", "Production", tb => tb.HasComment("Record of each purchase order, sales order, or work order transaction year to date."));
+
+ entity.Property(e => e.TransactionId).HasComment("Primary key for TransactionHistory records.");
+ entity.Property(e => e.ActualCost).HasComment("Product cost.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.Quantity).HasComment("Product quantity.");
+ entity.Property(e => e.ReferenceOrderId).HasComment("Purchase order, sales order, or work order identification number.");
+ entity.Property(e => e.ReferenceOrderLineId).HasComment("Line number associated with the purchase order, sales order, or work order.");
+ entity.Property(e => e.TransactionDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time of the transaction.");
+ entity.Property(e => e.TransactionType)
+ .IsFixedLength()
+ .HasComment("W = WorkOrder, S = SalesOrder, P = PurchaseOrder");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.TransactionHistories).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.TransactionId).HasName("PK_TransactionHistoryArchive_TransactionID");
+
+ entity.ToTable("TransactionHistoryArchive", "Production", tb => tb.HasComment("Transactions for previous years."));
+
+ entity.Property(e => e.TransactionId)
+ .ValueGeneratedNever()
+ .HasComment("Primary key for TransactionHistoryArchive records.");
+ entity.Property(e => e.ActualCost).HasComment("Product cost.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.Quantity).HasComment("Product quantity.");
+ entity.Property(e => e.ReferenceOrderId).HasComment("Purchase order, sales order, or work order identification number.");
+ entity.Property(e => e.ReferenceOrderLineId).HasComment("Line number associated with the purchase order, sales order, or work order.");
+ entity.Property(e => e.TransactionDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time of the transaction.");
+ entity.Property(e => e.TransactionType)
+ .IsFixedLength()
+ .HasComment("W = Work Order, S = Sales Order, P = Purchase Order");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.UnitMeasureCode).HasName("PK_UnitMeasure_UnitMeasureCode");
+
+ entity.ToTable("UnitMeasure", "Production", tb => tb.HasComment("Unit of measure lookup table."));
+
+ entity.Property(e => e.UnitMeasureCode)
+ .IsFixedLength()
+ .HasComment("Primary key.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Unit of measure description.");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.BusinessEntityId).HasName("PK_Vendor_BusinessEntityID");
+
+ entity.ToTable("Vendor", "Purchasing", tb =>
+ {
+ tb.HasComment("Companies from whom Adventure Works Cycles purchases parts or other goods.");
+ tb.HasTrigger("dVendor");
+ });
+
+ entity.Property(e => e.BusinessEntityId)
+ .ValueGeneratedNever()
+ .HasComment("Primary key for Vendor records. Foreign key to BusinessEntity.BusinessEntityID");
+ entity.Property(e => e.AccountNumber).HasComment("Vendor account (identification) number.");
+ entity.Property(e => e.ActiveFlag)
+ .HasDefaultValue(true)
+ .HasComment("0 = Vendor no longer used. 1 = Vendor is actively used.");
+ entity.Property(e => e.CreditRating).HasComment("1 = Superior, 2 = Excellent, 3 = Above average, 4 = Average, 5 = Below average");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.Name).HasComment("Company name.");
+ entity.Property(e => e.PreferredVendorStatus)
+ .HasDefaultValue(true)
+ .HasComment("0 = Do not use if another vendor is available. 1 = Preferred over other vendors supplying the same product.");
+ entity.Property(e => e.PurchasingWebServiceUrl).HasComment("Vendor URL.");
+
+ entity.HasOne(d => d.BusinessEntity).WithOne(p => p.Vendor).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.WorkOrderId).HasName("PK_WorkOrder_WorkOrderID");
+
+ entity.ToTable("WorkOrder", "Production", tb =>
+ {
+ tb.HasComment("Manufacturing work orders.");
+ tb.HasTrigger("iWorkOrder");
+ tb.HasTrigger("uWorkOrder");
+ });
+
+ entity.Property(e => e.WorkOrderId).HasComment("Primary key for WorkOrder records.");
+ entity.Property(e => e.DueDate).HasComment("Work order due date.");
+ entity.Property(e => e.EndDate).HasComment("Work order end date.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.OrderQty).HasComment("Product quantity to build.");
+ entity.Property(e => e.ProductId).HasComment("Product identification number. Foreign key to Product.ProductID.");
+ entity.Property(e => e.ScrapReasonId).HasComment("Reason for inspection failure.");
+ entity.Property(e => e.ScrappedQty).HasComment("Quantity that failed inspection.");
+ entity.Property(e => e.StartDate).HasComment("Work order start date.");
+ entity.Property(e => e.StockedQty)
+ .HasComputedColumnSql("(isnull([OrderQty]-[ScrappedQty],(0)))", false)
+ .HasComment("Quantity built and put in inventory.");
+
+ entity.HasOne(d => d.Product).WithMany(p => p.WorkOrders).OnDelete(DeleteBehavior.ClientSetNull);
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.WorkOrderId, e.ProductId, e.OperationSequence }).HasName("PK_WorkOrderRouting_WorkOrderID_ProductID_OperationSequence");
+
+ entity.ToTable("WorkOrderRouting", "Production", tb => tb.HasComment("Work order details."));
+
+ entity.Property(e => e.WorkOrderId).HasComment("Primary key. Foreign key to WorkOrder.WorkOrderID.");
+ entity.Property(e => e.ProductId).HasComment("Primary key. Foreign key to Product.ProductID.");
+ entity.Property(e => e.OperationSequence).HasComment("Primary key. Indicates the manufacturing process sequence.");
+ entity.Property(e => e.ActualCost).HasComment("Actual manufacturing cost.");
+ entity.Property(e => e.ActualEndDate).HasComment("Actual end date.");
+ entity.Property(e => e.ActualResourceHrs).HasComment("Number of manufacturing hours used.");
+ entity.Property(e => e.ActualStartDate).HasComment("Actual start date.");
+ entity.Property(e => e.LocationId).HasComment("Manufacturing location where the part is processed. Foreign key to Location.LocationID.");
+ entity.Property(e => e.ModifiedDate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Date and time the record was last updated.");
+ entity.Property(e => e.PlannedCost).HasComment("Estimated manufacturing cost.");
+ entity.Property(e => e.ScheduledEndDate).HasComment("Planned manufacturing end date.");
+ entity.Property(e => e.ScheduledStartDate).HasComment("Planned manufacturing start date.");
+
+ entity.HasOne(d => d.Location).WithMany(p => p.WorkOrderRoutings).OnDelete(DeleteBehavior.ClientSetNull);
+
+ entity.HasOne(d => d.WorkOrder).WithMany(p => p.WorkOrderRoutings).OnDelete(DeleteBehavior.ClientSetNull);
});
OnModelCreatingPartial(modelBuilder);
diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs
new file mode 100644
index 0000000..d32a7ec
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Department.cs
@@ -0,0 +1,45 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Lookup table containing the departments within the Adventure Works Cycles company.
+///
+[Table("Department", Schema = "HumanResources")]
+[Index("Name", Name = "AK_Department_Name", IsUnique = true)]
+public partial class Department
+{
+ ///
+ /// Primary key for Department records.
+ ///
+ [Key]
+ [Column("DepartmentID")]
+ public short DepartmentId { get; set; }
+
+ ///
+ /// Name of the department.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Name of the group to which the department belongs.
+ ///
+ [StringLength(50)]
+ public string GroupName { get; set; } = null!;
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("Department")]
+ public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs
new file mode 100644
index 0000000..b84409e
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Employee.cs
@@ -0,0 +1,124 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Employee information such as salary, department, and title.
+///
+[Table("Employee", Schema = "HumanResources")]
+[Index("LoginId", Name = "AK_Employee_LoginID", IsUnique = true)]
+[Index("NationalIdnumber", Name = "AK_Employee_NationalIDNumber", IsUnique = true)]
+[Index("Rowguid", Name = "AK_Employee_rowguid", IsUnique = true)]
+public partial class Employee
+{
+ ///
+ /// Primary key for Employee records. Foreign key to BusinessEntity.BusinessEntityID.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Unique national identification number such as a social security number.
+ ///
+ [Column("NationalIDNumber")]
+ [StringLength(15)]
+ public string NationalIdnumber { get; set; } = null!;
+
+ ///
+ /// Network login.
+ ///
+ [Column("LoginID")]
+ [StringLength(256)]
+ public string LoginId { get; set; } = null!;
+
+ ///
+ /// The depth of the employee in the corporate hierarchy.
+ ///
+ public short? OrganizationLevel { get; set; }
+
+ ///
+ /// Work title such as Buyer or Sales Representative.
+ ///
+ [StringLength(50)]
+ public string JobTitle { get; set; } = null!;
+
+ ///
+ /// Date of birth.
+ ///
+ public DateOnly BirthDate { get; set; }
+
+ ///
+ /// M = Married, S = Single
+ ///
+ [StringLength(1)]
+ public string MaritalStatus { get; set; } = null!;
+
+ ///
+ /// M = Male, F = Female
+ ///
+ [StringLength(1)]
+ public string Gender { get; set; } = null!;
+
+ ///
+ /// Employee hired on this date.
+ ///
+ public DateOnly HireDate { get; set; }
+
+ ///
+ /// Job classification. 0 = Hourly, not exempt from collective bargaining. 1 = Salaried, exempt from collective bargaining.
+ ///
+ public bool SalariedFlag { get; set; }
+
+ ///
+ /// Number of available vacation hours.
+ ///
+ public short VacationHours { get; set; }
+
+ ///
+ /// Number of available sick leave hours.
+ ///
+ public short SickLeaveHours { get; set; }
+
+ ///
+ /// 0 = Inactive, 1 = Active
+ ///
+ public bool CurrentFlag { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("Employee")]
+ public virtual Person BusinessEntity { get; set; } = null!;
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection EmployeePayHistories { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection JobCandidates { get; set; } = new List();
+
+ [InverseProperty("Employee")]
+ public virtual ICollection PurchaseOrderHeaders { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual SalesPerson? SalesPerson { get; set; }
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs
new file mode 100644
index 0000000..6dd7ca4
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeeDepartmentHistory.cs
@@ -0,0 +1,69 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Employee department transfers.
+///
+[PrimaryKey("BusinessEntityId", "StartDate", "DepartmentId", "ShiftId")]
+[Table("EmployeeDepartmentHistory", Schema = "HumanResources")]
+[Index("DepartmentId", Name = "IX_EmployeeDepartmentHistory_DepartmentID")]
+[Index("ShiftId", Name = "IX_EmployeeDepartmentHistory_ShiftID")]
+public partial class EmployeeDepartmentHistory
+{
+ ///
+ /// Employee identification number. Foreign key to Employee.BusinessEntityID.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Department in which the employee worked including currently. Foreign key to Department.DepartmentID.
+ ///
+ [Key]
+ [Column("DepartmentID")]
+ public short DepartmentId { get; set; }
+
+ ///
+ /// Identifies which 8-hour shift the employee works. Foreign key to Shift.Shift.ID.
+ ///
+ [Key]
+ [Column("ShiftID")]
+ public byte ShiftId { get; set; }
+
+ ///
+ /// Date the employee started work in the department.
+ ///
+ [Key]
+ public DateOnly StartDate { get; set; }
+
+ ///
+ /// Date the employee left the department. NULL = Current department.
+ ///
+ public DateOnly? EndDate { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("EmployeeDepartmentHistories")]
+ public virtual Employee BusinessEntity { get; set; } = null!;
+
+ [ForeignKey("DepartmentId")]
+ [InverseProperty("EmployeeDepartmentHistories")]
+ public virtual Department Department { get; set; } = null!;
+
+ [ForeignKey("ShiftId")]
+ [InverseProperty("EmployeeDepartmentHistories")]
+ public virtual Shift Shift { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs
new file mode 100644
index 0000000..f8dfdda
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/EmployeePayHistory.cs
@@ -0,0 +1,52 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Employee pay history.
+///
+[PrimaryKey("BusinessEntityId", "RateChangeDate")]
+[Table("EmployeePayHistory", Schema = "HumanResources")]
+public partial class EmployeePayHistory
+{
+ ///
+ /// Employee identification number. Foreign key to Employee.BusinessEntityID.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Date the change in pay is effective
+ ///
+ [Key]
+ [Column(TypeName = "datetime")]
+ public DateTime RateChangeDate { get; set; }
+
+ ///
+ /// Salary hourly rate.
+ ///
+ [Column(TypeName = "money")]
+ public decimal Rate { get; set; }
+
+ ///
+ /// 1 = Salary received monthly, 2 = Salary received biweekly
+ ///
+ public byte PayFrequency { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("EmployeePayHistories")]
+ public virtual Employee BusinessEntity { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs
new file mode 100644
index 0000000..aa83b8c
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/JobCandidate.cs
@@ -0,0 +1,46 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Résumés submitted to Human Resources by job applicants.
+///
+[Table("JobCandidate", Schema = "HumanResources")]
+[Index("BusinessEntityId", Name = "IX_JobCandidate_BusinessEntityID")]
+public partial class JobCandidate
+{
+ ///
+ /// Primary key for JobCandidate records.
+ ///
+ [Key]
+ [Column("JobCandidateID")]
+ public int JobCandidateId { get; set; }
+
+ ///
+ /// Employee identification number if applicant was hired. Foreign key to Employee.BusinessEntityID.
+ ///
+ [Column("BusinessEntityID")]
+ public int? BusinessEntityId { get; set; }
+
+ ///
+ /// Résumé in XML format.
+ ///
+ [Column(TypeName = "xml")]
+ public string? Resume { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("JobCandidates")]
+ public virtual Employee? BusinessEntity { get; set; }
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs
new file mode 100644
index 0000000..546637d
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/HumanResources/Shift.cs
@@ -0,0 +1,50 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Work shift lookup table.
+///
+[Table("Shift", Schema = "HumanResources")]
+[Index("Name", Name = "AK_Shift_Name", IsUnique = true)]
+[Index("StartTime", "EndTime", Name = "AK_Shift_StartTime_EndTime", IsUnique = true)]
+public partial class Shift
+{
+ ///
+ /// Primary key for Shift records.
+ ///
+ [Key]
+ [Column("ShiftID")]
+ public byte ShiftId { get; set; }
+
+ ///
+ /// Shift description.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Shift start time.
+ ///
+ public TimeOnly StartTime { get; set; }
+
+ ///
+ /// Shift end time.
+ ///
+ public TimeOnly EndTime { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("Shift")]
+ public virtual ICollection EmployeeDepartmentHistories { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Address.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs
similarity index 63%
rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/Address.cs
rename to src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs
index 646c1f0..13f8362 100644
--- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/Address.cs
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Address.cs
@@ -1,5 +1,5 @@
// This file has been auto generated by EF Core Power Tools.
-#nullable disable
+#nullable enable
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
@@ -9,12 +9,12 @@
namespace AdventureWorksDemo.Data.Entities;
///
-/// Street address information for customers.
+/// Street address information for customers, employees, and vendors.
///
-[Table("Address", Schema = "SalesLT")]
+[Table("Address", Schema = "Person")]
[Index("Rowguid", Name = "AK_Address_rowguid", IsUnique = true)]
-[Index("AddressLine1", "AddressLine2", "City", "StateProvince", "PostalCode", "CountryRegion", Name = "IX_Address_AddressLine1_AddressLine2_City_StateProvince_PostalCode_CountryRegion")]
-[Index("StateProvince", Name = "IX_Address_StateProvince")]
+[Index("AddressLine1", "AddressLine2", "City", "StateProvinceId", "PostalCode", Name = "IX_Address_AddressLine1_AddressLine2_City_StateProvinceID_PostalCode", IsUnique = true)]
+[Index("StateProvinceId", Name = "IX_Address_StateProvinceID")]
public partial class Address
{
///
@@ -27,40 +27,32 @@ public partial class Address
///
/// First street address line.
///
- [Required]
[StringLength(60)]
- public string AddressLine1 { get; set; }
+ public string AddressLine1 { get; set; } = null!;
///
/// Second street address line.
///
[StringLength(60)]
- public string AddressLine2 { get; set; }
+ public string? AddressLine2 { get; set; }
///
/// Name of the city.
///
- [Required]
[StringLength(30)]
- public string City { get; set; }
+ public string City { get; set; } = null!;
///
- /// Name of state or province.
+ /// Unique identification number for the state or province. Foreign key to StateProvince table.
///
- [Required]
- [StringLength(50)]
- public string StateProvince { get; set; }
-
- [Required]
- [StringLength(50)]
- public string CountryRegion { get; set; }
+ [Column("StateProvinceID")]
+ public int StateProvinceId { get; set; }
///
/// Postal code for the street address.
///
- [Required]
[StringLength(15)]
- public string PostalCode { get; set; }
+ public string PostalCode { get; set; } = null!;
///
/// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
@@ -75,11 +67,15 @@ public partial class Address
public DateTime ModifiedDate { get; set; }
[InverseProperty("Address")]
- public virtual ICollection CustomerAddresses { get; set; } = new List();
+ public virtual ICollection BusinessEntityAddresses { get; set; } = new List();
[InverseProperty("BillToAddress")]
public virtual ICollection SalesOrderHeaderBillToAddresses { get; set; } = new List();
[InverseProperty("ShipToAddress")]
public virtual ICollection SalesOrderHeaderShipToAddresses { get; set; } = new List();
+
+ [ForeignKey("StateProvinceId")]
+ [InverseProperty("Addresses")]
+ public virtual StateProvince StateProvince { get; set; } = null!;
}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs
new file mode 100644
index 0000000..1800b3c
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/AddressType.cs
@@ -0,0 +1,46 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Types of addresses stored in the Address table.
+///
+[Table("AddressType", Schema = "Person")]
+[Index("Name", Name = "AK_AddressType_Name", IsUnique = true)]
+[Index("Rowguid", Name = "AK_AddressType_rowguid", IsUnique = true)]
+public partial class AddressType
+{
+ ///
+ /// Primary key for AddressType records.
+ ///
+ [Key]
+ [Column("AddressTypeID")]
+ public int AddressTypeId { get; set; }
+
+ ///
+ /// Address type description. For example, Billing, Home, or Shipping.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("AddressType")]
+ public virtual ICollection BusinessEntityAddresses { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs
new file mode 100644
index 0000000..bbf785e
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntity.cs
@@ -0,0 +1,51 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Source of the ID that connects vendors, customers, and employees with address and contact information.
+///
+[Table("BusinessEntity", Schema = "Person")]
+[Index("Rowguid", Name = "AK_BusinessEntity_rowguid", IsUnique = true)]
+public partial class BusinessEntity
+{
+ ///
+ /// Primary key for all customers, vendors, and employees.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection BusinessEntityAddresses { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection BusinessEntityContacts { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual Person? Person { get; set; }
+
+ [InverseProperty("BusinessEntity")]
+ public virtual Store? Store { get; set; }
+
+ [InverseProperty("BusinessEntity")]
+ public virtual Vendor? Vendor { get; set; }
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs
new file mode 100644
index 0000000..9dfbd74
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityAddress.cs
@@ -0,0 +1,65 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Cross-reference table mapping customers, vendors, and employees to their addresses.
+///
+[PrimaryKey("BusinessEntityId", "AddressId", "AddressTypeId")]
+[Table("BusinessEntityAddress", Schema = "Person")]
+[Index("Rowguid", Name = "AK_BusinessEntityAddress_rowguid", IsUnique = true)]
+[Index("AddressId", Name = "IX_BusinessEntityAddress_AddressID")]
+[Index("AddressTypeId", Name = "IX_BusinessEntityAddress_AddressTypeID")]
+public partial class BusinessEntityAddress
+{
+ ///
+ /// Primary key. Foreign key to BusinessEntity.BusinessEntityID.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Primary key. Foreign key to Address.AddressID.
+ ///
+ [Key]
+ [Column("AddressID")]
+ public int AddressId { get; set; }
+
+ ///
+ /// Primary key. Foreign key to AddressType.AddressTypeID.
+ ///
+ [Key]
+ [Column("AddressTypeID")]
+ public int AddressTypeId { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("AddressId")]
+ [InverseProperty("BusinessEntityAddresses")]
+ public virtual Address Address { get; set; } = null!;
+
+ [ForeignKey("AddressTypeId")]
+ [InverseProperty("BusinessEntityAddresses")]
+ public virtual AddressType AddressType { get; set; } = null!;
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("BusinessEntityAddresses")]
+ public virtual BusinessEntity BusinessEntity { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs
new file mode 100644
index 0000000..780b46b
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/BusinessEntityContact.cs
@@ -0,0 +1,65 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Cross-reference table mapping stores, vendors, and employees to people
+///
+[PrimaryKey("BusinessEntityId", "PersonId", "ContactTypeId")]
+[Table("BusinessEntityContact", Schema = "Person")]
+[Index("Rowguid", Name = "AK_BusinessEntityContact_rowguid", IsUnique = true)]
+[Index("ContactTypeId", Name = "IX_BusinessEntityContact_ContactTypeID")]
+[Index("PersonId", Name = "IX_BusinessEntityContact_PersonID")]
+public partial class BusinessEntityContact
+{
+ ///
+ /// Primary key. Foreign key to BusinessEntity.BusinessEntityID.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Primary key. Foreign key to Person.BusinessEntityID.
+ ///
+ [Key]
+ [Column("PersonID")]
+ public int PersonId { get; set; }
+
+ ///
+ /// Primary key. Foreign key to ContactType.ContactTypeID.
+ ///
+ [Key]
+ [Column("ContactTypeID")]
+ public int ContactTypeId { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("BusinessEntityContacts")]
+ public virtual BusinessEntity BusinessEntity { get; set; } = null!;
+
+ [ForeignKey("ContactTypeId")]
+ [InverseProperty("BusinessEntityContacts")]
+ public virtual ContactType ContactType { get; set; } = null!;
+
+ [ForeignKey("PersonId")]
+ [InverseProperty("BusinessEntityContacts")]
+ public virtual Person Person { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs
new file mode 100644
index 0000000..13ab2da
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/ContactType.cs
@@ -0,0 +1,39 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Lookup table containing the types of business entity contacts.
+///
+[Table("ContactType", Schema = "Person")]
+[Index("Name", Name = "AK_ContactType_Name", IsUnique = true)]
+public partial class ContactType
+{
+ ///
+ /// Primary key for ContactType records.
+ ///
+ [Key]
+ [Column("ContactTypeID")]
+ public int ContactTypeId { get; set; }
+
+ ///
+ /// Contact type description.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("ContactType")]
+ public virtual ICollection BusinessEntityContacts { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs
new file mode 100644
index 0000000..953f85b
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/CountryRegion.cs
@@ -0,0 +1,45 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Lookup table containing the ISO standard codes for countries and regions.
+///
+[Table("CountryRegion", Schema = "Person")]
+[Index("Name", Name = "AK_CountryRegion_Name", IsUnique = true)]
+public partial class CountryRegion
+{
+ ///
+ /// ISO standard code for countries and regions.
+ ///
+ [Key]
+ [StringLength(3)]
+ public string CountryRegionCode { get; set; } = null!;
+
+ ///
+ /// Country or region name.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("CountryRegionCodeNavigation")]
+ public virtual ICollection CountryRegionCurrencies { get; set; } = new List();
+
+ [InverseProperty("CountryRegionCodeNavigation")]
+ public virtual ICollection SalesTerritories { get; set; } = new List();
+
+ [InverseProperty("CountryRegionCodeNavigation")]
+ public virtual ICollection StateProvinces { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs
new file mode 100644
index 0000000..76e58b3
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/EmailAddress.cs
@@ -0,0 +1,55 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Where to send a person email.
+///
+[PrimaryKey("BusinessEntityId", "EmailAddressId")]
+[Table("EmailAddress", Schema = "Person")]
+[Index("EmailAddress1", Name = "IX_EmailAddress_EmailAddress")]
+public partial class EmailAddress
+{
+ ///
+ /// Primary key. Person associated with this email address. Foreign key to Person.BusinessEntityID
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Primary key. ID of this email address.
+ ///
+ [Key]
+ [Column("EmailAddressID")]
+ public int EmailAddressId { get; set; }
+
+ ///
+ /// E-mail address for the person.
+ ///
+ [Column("EmailAddress")]
+ [StringLength(50)]
+ public string? EmailAddress1 { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("EmailAddresses")]
+ public virtual Person BusinessEntity { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs
new file mode 100644
index 0000000..595ad2d
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Password.cs
@@ -0,0 +1,50 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// One way hashed authentication information
+///
+[Table("Password", Schema = "Person")]
+public partial class Password
+{
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Password for the e-mail account.
+ ///
+ [StringLength(128)]
+ [Unicode(false)]
+ public string PasswordHash { get; set; } = null!;
+
+ ///
+ /// Random value concatenated with the password string before the password is hashed.
+ ///
+ [StringLength(10)]
+ [Unicode(false)]
+ public string PasswordSalt { get; set; } = null!;
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("Password")]
+ public virtual Person BusinessEntity { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs
new file mode 100644
index 0000000..11e970a
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/Person.cs
@@ -0,0 +1,125 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Human beings involved with AdventureWorks: employees, customer contacts, and vendor contacts.
+///
+[Table("Person", Schema = "Person")]
+[Index("Rowguid", Name = "AK_Person_rowguid", IsUnique = true)]
+[Index("LastName", "FirstName", "MiddleName", Name = "IX_Person_LastName_FirstName_MiddleName")]
+[Index("AdditionalContactInfo", Name = "PXML_Person_AddContact")]
+[Index("Demographics", Name = "PXML_Person_Demographics")]
+[Index("Demographics", Name = "XMLPATH_Person_Demographics")]
+[Index("Demographics", Name = "XMLPROPERTY_Person_Demographics")]
+[Index("Demographics", Name = "XMLVALUE_Person_Demographics")]
+public partial class Person
+{
+ ///
+ /// Primary key for Person records.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Primary type of person: SC = Store Contact, IN = Individual (retail) customer, SP = Sales person, EM = Employee (non-sales), VC = Vendor contact, GC = General contact
+ ///
+ [StringLength(2)]
+ public string PersonType { get; set; } = null!;
+
+ ///
+ /// 0 = The data in FirstName and LastName are stored in western style (first name, last name) order. 1 = Eastern style (last name, first name) order.
+ ///
+ public bool NameStyle { get; set; }
+
+ ///
+ /// A courtesy title. For example, Mr. or Ms.
+ ///
+ [StringLength(8)]
+ public string? Title { get; set; }
+
+ ///
+ /// First name of the person.
+ ///
+ [StringLength(50)]
+ public string FirstName { get; set; } = null!;
+
+ ///
+ /// Middle name or middle initial of the person.
+ ///
+ [StringLength(50)]
+ public string? MiddleName { get; set; }
+
+ ///
+ /// Last name of the person.
+ ///
+ [StringLength(50)]
+ public string LastName { get; set; } = null!;
+
+ ///
+ /// Surname suffix. For example, Sr. or Jr.
+ ///
+ [StringLength(10)]
+ public string? Suffix { get; set; }
+
+ ///
+ /// 0 = Contact does not wish to receive e-mail promotions, 1 = Contact does wish to receive e-mail promotions from AdventureWorks, 2 = Contact does wish to receive e-mail promotions from AdventureWorks and selected partners.
+ ///
+ public int EmailPromotion { get; set; }
+
+ ///
+ /// Additional contact information about the person stored in xml format.
+ ///
+ [Column(TypeName = "xml")]
+ public string? AdditionalContactInfo { get; set; }
+
+ ///
+ /// Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis.
+ ///
+ [Column(TypeName = "xml")]
+ public string? Demographics { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("Person")]
+ public virtual BusinessEntity BusinessEntity { get; set; } = null!;
+
+ [InverseProperty("Person")]
+ public virtual ICollection BusinessEntityContacts { get; set; } = new List();
+
+ [InverseProperty("Person")]
+ public virtual ICollection Customers { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection EmailAddresses { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual Employee? Employee { get; set; }
+
+ [InverseProperty("BusinessEntity")]
+ public virtual Password? Password { get; set; }
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection PersonCreditCards { get; set; } = new List();
+
+ [InverseProperty("BusinessEntity")]
+ public virtual ICollection PersonPhones { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs
new file mode 100644
index 0000000..5c736ba
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/PersonPhone.cs
@@ -0,0 +1,53 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Telephone number and type of a person.
+///
+[PrimaryKey("BusinessEntityId", "PhoneNumber", "PhoneNumberTypeId")]
+[Table("PersonPhone", Schema = "Person")]
+[Index("PhoneNumber", Name = "IX_PersonPhone_PhoneNumber")]
+public partial class PersonPhone
+{
+ ///
+ /// Business entity identification number. Foreign key to Person.BusinessEntityID.
+ ///
+ [Key]
+ [Column("BusinessEntityID")]
+ public int BusinessEntityId { get; set; }
+
+ ///
+ /// Telephone number identification number.
+ ///
+ [Key]
+ [StringLength(25)]
+ public string PhoneNumber { get; set; } = null!;
+
+ ///
+ /// Kind of phone number. Foreign key to PhoneNumberType.PhoneNumberTypeID.
+ ///
+ [Key]
+ [Column("PhoneNumberTypeID")]
+ public int PhoneNumberTypeId { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("BusinessEntityId")]
+ [InverseProperty("PersonPhones")]
+ public virtual Person BusinessEntity { get; set; } = null!;
+
+ [ForeignKey("PhoneNumberTypeId")]
+ [InverseProperty("PersonPhones")]
+ public virtual PhoneNumberType PhoneNumberType { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs
new file mode 100644
index 0000000..63aa6e6
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/PhoneNumberType.cs
@@ -0,0 +1,38 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Type of phone number of a person.
+///
+[Table("PhoneNumberType", Schema = "Person")]
+public partial class PhoneNumberType
+{
+ ///
+ /// Primary key for telephone number type records.
+ ///
+ [Key]
+ [Column("PhoneNumberTypeID")]
+ public int PhoneNumberTypeId { get; set; }
+
+ ///
+ /// Name of the telephone number type
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("PhoneNumberType")]
+ public virtual ICollection PersonPhones { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs b/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs
new file mode 100644
index 0000000..464394e
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Person/StateProvince.cs
@@ -0,0 +1,81 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// State and province lookup table.
+///
+[Table("StateProvince", Schema = "Person")]
+[Index("Name", Name = "AK_StateProvince_Name", IsUnique = true)]
+[Index("StateProvinceCode", "CountryRegionCode", Name = "AK_StateProvince_StateProvinceCode_CountryRegionCode", IsUnique = true)]
+[Index("Rowguid", Name = "AK_StateProvince_rowguid", IsUnique = true)]
+public partial class StateProvince
+{
+ ///
+ /// Primary key for StateProvince records.
+ ///
+ [Key]
+ [Column("StateProvinceID")]
+ public int StateProvinceId { get; set; }
+
+ ///
+ /// ISO standard state or province code.
+ ///
+ [StringLength(3)]
+ public string StateProvinceCode { get; set; } = null!;
+
+ ///
+ /// ISO standard country or region code. Foreign key to CountryRegion.CountryRegionCode.
+ ///
+ [StringLength(3)]
+ public string CountryRegionCode { get; set; } = null!;
+
+ ///
+ /// 0 = StateProvinceCode exists. 1 = StateProvinceCode unavailable, using CountryRegionCode.
+ ///
+ public bool IsOnlyStateProvinceFlag { get; set; }
+
+ ///
+ /// State or province description.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// ID of the territory in which the state or province is located. Foreign key to SalesTerritory.SalesTerritoryID.
+ ///
+ [Column("TerritoryID")]
+ public int TerritoryId { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("StateProvince")]
+ public virtual ICollection Addresses { get; set; } = new List();
+
+ [ForeignKey("CountryRegionCode")]
+ [InverseProperty("StateProvinces")]
+ public virtual CountryRegion CountryRegionCodeNavigation { get; set; } = null!;
+
+ [InverseProperty("StateProvince")]
+ public virtual ICollection SalesTaxRates { get; set; } = new List();
+
+ [ForeignKey("TerritoryId")]
+ [InverseProperty("StateProvinces")]
+ public virtual SalesTerritory Territory { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs
new file mode 100644
index 0000000..0361cb7
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Production/BillOfMaterial.cs
@@ -0,0 +1,84 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Items required to make bicycles and bicycle subassemblies. It identifies the heirarchical relationship between a parent product and its components.
+///
+[Table("BillOfMaterials", Schema = "Production")]
+[Index("UnitMeasureCode", Name = "IX_BillOfMaterials_UnitMeasureCode")]
+public partial class BillOfMaterial
+{
+ ///
+ /// Primary key for BillOfMaterials records.
+ ///
+ [Key]
+ [Column("BillOfMaterialsID")]
+ public int BillOfMaterialsId { get; set; }
+
+ ///
+ /// Parent product identification number. Foreign key to Product.ProductID.
+ ///
+ [Column("ProductAssemblyID")]
+ public int? ProductAssemblyId { get; set; }
+
+ ///
+ /// Component identification number. Foreign key to Product.ProductID.
+ ///
+ [Column("ComponentID")]
+ public int ComponentId { get; set; }
+
+ ///
+ /// Date the component started being used in the assembly item.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime StartDate { get; set; }
+
+ ///
+ /// Date the component stopped being used in the assembly item.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime? EndDate { get; set; }
+
+ ///
+ /// Standard code identifying the unit of measure for the quantity.
+ ///
+ [StringLength(3)]
+ public string UnitMeasureCode { get; set; } = null!;
+
+ ///
+ /// Indicates the depth the component is from its parent (AssemblyID).
+ ///
+ [Column("BOMLevel")]
+ public short Bomlevel { get; set; }
+
+ ///
+ /// Quantity of the component needed to create the assembly.
+ ///
+ [Column(TypeName = "decimal(8, 2)")]
+ public decimal PerAssemblyQty { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [ForeignKey("ComponentId")]
+ [InverseProperty("BillOfMaterialComponents")]
+ public virtual Product Component { get; set; } = null!;
+
+ [ForeignKey("ProductAssemblyId")]
+ [InverseProperty("BillOfMaterialProductAssemblies")]
+ public virtual Product? ProductAssembly { get; set; }
+
+ [ForeignKey("UnitMeasureCode")]
+ [InverseProperty("BillOfMaterials")]
+ public virtual UnitMeasure UnitMeasureCodeNavigation { get; set; } = null!;
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs
new file mode 100644
index 0000000..8216958
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Culture.cs
@@ -0,0 +1,40 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Lookup table containing the languages in which some AdventureWorks data is stored.
+///
+[Table("Culture", Schema = "Production")]
+[Index("Name", Name = "AK_Culture_Name", IsUnique = true)]
+public partial class Culture
+{
+ ///
+ /// Primary key for Culture records.
+ ///
+ [Key]
+ [Column("CultureID")]
+ [StringLength(6)]
+ public string CultureId { get; set; } = null!;
+
+ ///
+ /// Culture description.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("Culture")]
+ public virtual ICollection ProductModelProductDescriptionCultures { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs
new file mode 100644
index 0000000..9b10541
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Illustration.cs
@@ -0,0 +1,38 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Bicycle assembly diagrams.
+///
+[Table("Illustration", Schema = "Production")]
+public partial class Illustration
+{
+ ///
+ /// Primary key for Illustration records.
+ ///
+ [Key]
+ [Column("IllustrationID")]
+ public int IllustrationId { get; set; }
+
+ ///
+ /// Illustrations used in manufacturing instructions. Stored as XML.
+ ///
+ [Column(TypeName = "xml")]
+ public string? Diagram { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("Illustration")]
+ public virtual ICollection ProductModelIllustrations { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs
new file mode 100644
index 0000000..0fb6390
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Location.cs
@@ -0,0 +1,54 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Product inventory and manufacturing locations.
+///
+[Table("Location", Schema = "Production")]
+[Index("Name", Name = "AK_Location_Name", IsUnique = true)]
+public partial class Location
+{
+ ///
+ /// Primary key for Location records.
+ ///
+ [Key]
+ [Column("LocationID")]
+ public short LocationId { get; set; }
+
+ ///
+ /// Location description.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Standard hourly cost of the manufacturing location.
+ ///
+ [Column(TypeName = "smallmoney")]
+ public decimal CostRate { get; set; }
+
+ ///
+ /// Work capacity (in hours) of the manufacturing location.
+ ///
+ [Column(TypeName = "decimal(8, 2)")]
+ public decimal Availability { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("Location")]
+ public virtual ICollection ProductInventories { get; set; } = new List();
+
+ [InverseProperty("Location")]
+ public virtual ICollection WorkOrderRoutings { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs
new file mode 100644
index 0000000..86a3c91
--- /dev/null
+++ b/src/API/AdventureWorksDemo.Data/Entities/Production/Product.cs
@@ -0,0 +1,220 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace AdventureWorksDemo.Data.Entities;
+
+///
+/// Products sold or used in the manfacturing of sold products.
+///
+[Table("Product", Schema = "Production")]
+[Index("Name", Name = "AK_Product_Name", IsUnique = true)]
+[Index("ProductNumber", Name = "AK_Product_ProductNumber", IsUnique = true)]
+[Index("Rowguid", Name = "AK_Product_rowguid", IsUnique = true)]
+public partial class Product
+{
+ ///
+ /// Primary key for Product records.
+ ///
+ [Key]
+ [Column("ProductID")]
+ public int ProductId { get; set; }
+
+ ///
+ /// Name of the product.
+ ///
+ [StringLength(50)]
+ public string Name { get; set; } = null!;
+
+ ///
+ /// Unique product identification number.
+ ///
+ [StringLength(25)]
+ public string ProductNumber { get; set; } = null!;
+
+ ///
+ /// 0 = Product is purchased, 1 = Product is manufactured in-house.
+ ///
+ public bool MakeFlag { get; set; }
+
+ ///
+ /// 0 = Product is not a salable item. 1 = Product is salable.
+ ///
+ public bool FinishedGoodsFlag { get; set; }
+
+ ///
+ /// Product color.
+ ///
+ [StringLength(15)]
+ public string? Color { get; set; }
+
+ ///
+ /// Minimum inventory quantity.
+ ///
+ public short SafetyStockLevel { get; set; }
+
+ ///
+ /// Inventory level that triggers a purchase order or work order.
+ ///
+ public short ReorderPoint { get; set; }
+
+ ///
+ /// Standard cost of the product.
+ ///
+ [Column(TypeName = "money")]
+ public decimal StandardCost { get; set; }
+
+ ///
+ /// Selling price.
+ ///
+ [Column(TypeName = "money")]
+ public decimal ListPrice { get; set; }
+
+ ///
+ /// Product size.
+ ///
+ [StringLength(5)]
+ public string? Size { get; set; }
+
+ ///
+ /// Unit of measure for Size column.
+ ///
+ [StringLength(3)]
+ public string? SizeUnitMeasureCode { get; set; }
+
+ ///
+ /// Unit of measure for Weight column.
+ ///
+ [StringLength(3)]
+ public string? WeightUnitMeasureCode { get; set; }
+
+ ///
+ /// Product weight.
+ ///
+ [Column(TypeName = "decimal(8, 2)")]
+ public decimal? Weight { get; set; }
+
+ ///
+ /// Number of days required to manufacture the product.
+ ///
+ public int DaysToManufacture { get; set; }
+
+ ///
+ /// R = Road, M = Mountain, T = Touring, S = Standard
+ ///
+ [StringLength(2)]
+ public string? ProductLine { get; set; }
+
+ ///
+ /// H = High, M = Medium, L = Low
+ ///
+ [StringLength(2)]
+ public string? Class { get; set; }
+
+ ///
+ /// W = Womens, M = Mens, U = Universal
+ ///
+ [StringLength(2)]
+ public string? Style { get; set; }
+
+ ///
+ /// Product is a member of this product subcategory. Foreign key to ProductSubCategory.ProductSubCategoryID.
+ ///
+ [Column("ProductSubcategoryID")]
+ public int? ProductSubcategoryId { get; set; }
+
+ ///
+ /// Product is a member of this product model. Foreign key to ProductModel.ProductModelID.
+ ///
+ [Column("ProductModelID")]
+ public int? ProductModelId { get; set; }
+
+ ///
+ /// Date the product was available for sale.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime SellStartDate { get; set; }
+
+ ///
+ /// Date the product was no longer available for sale.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime? SellEndDate { get; set; }
+
+ ///
+ /// Date the product was discontinued.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime? DiscontinuedDate { get; set; }
+
+ ///
+ /// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+ ///
+ [Column("rowguid")]
+ public Guid Rowguid { get; set; }
+
+ ///
+ /// Date and time the record was last updated.
+ ///
+ [Column(TypeName = "datetime")]
+ public DateTime ModifiedDate { get; set; }
+
+ [InverseProperty("Component")]
+ public virtual ICollection BillOfMaterialComponents { get; set; } = new List();
+
+ [InverseProperty("ProductAssembly")]
+ public virtual ICollection BillOfMaterialProductAssemblies { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection ProductCostHistories { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection ProductInventories { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection ProductListPriceHistories { get; set; } = new List();
+
+ [ForeignKey("ProductModelId")]
+ [InverseProperty("Products")]
+ public virtual ProductModel? ProductModel { get; set; }
+
+ [InverseProperty("Product")]
+ public virtual ICollection ProductProductPhotos { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection ProductReviews { get; set; } = new List();
+
+ [ForeignKey("ProductSubcategoryId")]
+ [InverseProperty("Products")]
+ public virtual ProductSubcategory? ProductSubcategory { get; set; }
+
+ [InverseProperty("Product")]
+ public virtual ICollection ProductVendors { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection PurchaseOrderDetails { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection ShoppingCartItems { get; set; } = new List();
+
+ [ForeignKey("SizeUnitMeasureCode")]
+ [InverseProperty("ProductSizeUnitMeasureCodeNavigations")]
+ public virtual UnitMeasure? SizeUnitMeasureCodeNavigation { get; set; }
+
+ [InverseProperty("Product")]
+ public virtual ICollection SpecialOfferProducts { get; set; } = new List();
+
+ [InverseProperty("Product")]
+ public virtual ICollection TransactionHistories { get; set; } = new List();
+
+ [ForeignKey("WeightUnitMeasureCode")]
+ [InverseProperty("ProductWeightUnitMeasureCodeNavigations")]
+ public virtual UnitMeasure? WeightUnitMeasureCodeNavigation { get; set; }
+
+ [InverseProperty("Product")]
+ public virtual ICollection WorkOrders { get; set; } = new List();
+}
\ No newline at end of file
diff --git a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductCategory.cs b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs
similarity index 61%
rename from src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductCategory.cs
rename to src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs
index ee5fb2b..3dc0650 100644
--- a/src/API/AdventureWorksDemo.Data/Entities/SalesLT/ProductCategory.cs
+++ b/src/API/AdventureWorksDemo.Data/Entities/Production/ProductCategory.cs
@@ -1,5 +1,5 @@
// This file has been auto generated by EF Core Power Tools.
-#nullable disable
+#nullable enable
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
@@ -11,7 +11,7 @@ namespace AdventureWorksDemo.Data.Entities;
///
/// High-level product categorization.
///
-[Table("ProductCategory", Schema = "SalesLT")]
+[Table("ProductCategory", Schema = "Production")]
[Index("Name", Name = "AK_ProductCategory_Name", IsUnique = true)]
[Index("Rowguid", Name = "AK_ProductCategory_rowguid", IsUnique = true)]
public partial class ProductCategory
@@ -23,18 +23,11 @@ public partial class ProductCategory
[Column("ProductCategoryID")]
public int ProductCategoryId { get; set; }
- ///
- /// Product category identification number of immediate ancestor category. Foreign key to ProductCategory.ProductCategoryID.
- ///
- [Column("ParentProductCategoryID")]
- public int? ParentProductCategoryId { get; set; }
-
///
/// Category description.
///
- [Required]
[StringLength(50)]
- public string Name { get; set; }
+ public string Name { get; set; } = null!;
///
/// ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
@@ -48,13 +41,6 @@ public partial class ProductCategory
[Column(TypeName = "datetime")]
public DateTime ModifiedDate { get; set; }
- [InverseProperty("ParentProductCategory")]
- public virtual ICollection InverseParentProductCategory { get; set; } = new List();
-
- [ForeignKey("ParentProductCategoryId")]
- [InverseProperty("InverseParentProductCategory")]
- public virtual ProductCategory ParentProductCategory { get; set; }
-
[InverseProperty("ProductCategory")]
- public virtual ICollection