Esempio n. 1
0
        public async Task TestCreateOrderAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetCustomerIdentity().GetUserInfo();
            var service    = ServiceMocker.GetSalesService(userInfo, nameof(TestCreateOrderAsync));
            var controller = new SalesController(LoggingHelper.GetLogger <SalesController>(), service);
            var request    = new Requests.CreateOrderRequest
            {
                CustomerID      = 1,
                PaymentMethodID = new Guid("7671A4F7-A735-4CB7-AAB4-CF47AE20171D"),
                CurrencyID      = "USD",
                Comments        = "Order from unit tests",
                Details         = new List <OrderDetailRequest>
                {
                    new OrderDetailRequest
                    {
                        ProductID = 1,
                        Quantity  = 1
                    }
                }
            };

            // Act
            var response = await controller.CreateOrderAsync(request) as ObjectResult;

            var value = response.Value as ISingleResponse <OrderHeader>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.OrderHeaderID.HasValue);
        }
Esempio n. 2
0
        public async Task TestCreateOrderAsync()
        {
            // Arrange
            var logger     = LoggingHelper.GetLogger <SalesController>();
            var service    = ServiceMocker.GetSalesService(nameof(TestCreateOrderAsync));
            var controller = new SalesController(logger, service);
            var model      = new OrderHeaderRequest
            {
                CustomerID       = 1,
                PaymentMethodID  = new Guid("7671A4F7-A735-4CB7-AAB4-CF47AE20171D"),
                Comments         = "Order from unit tests",
                CreationUser     = "******",
                CreationDateTime = DateTime.Now,
                Details          = new List <OrderDetailRequest>
                {
                    new OrderDetailRequest
                    {
                        ProductID   = 1,
                        ProductName = "The King of Fighters XIV",
                        Quantity    = 1,
                    }
                }
            };

            // Act
            var response = await controller.CreateOrderAsync(model) as ObjectResult;

            var value = response.Value as ISingleResponse <OrderHeader>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.OrderHeaderID.HasValue);
        }
        public static SalesController GetSalesController(string name)
        {
            var logger        = LoggingHelper.GetLogger <SalesController>();
            var paymentClient = new MockedRothschildHouseClient();
            var userInfo      = IdentityMocker.GetCustomerIdentity().GetUserInfo();
            var service       = ServiceMocker.GetSalesService(userInfo, name);

            return(new SalesController(logger, paymentClient, service));
        }
Esempio n. 4
0
        static Program()
        {
            Logger = LoggingHelper.GetLogger <Program>();

            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json")
                                .Build();

            AppSettings = new AppSettings();

            configuration.GetSection("appSettings").Bind(AppSettings);
        }
Esempio n. 5
0
        /// <summary>
        /// Starts or restarts the tunnel relay engine.
        /// </summary>
        /// <returns>Task tracking operation.</returns>
        public static async Task StartTunnelRelayAsync()
        {
            // If there is an existing connection close. This is for cases where a plugin was reconfigured\enabled\disabled etc.
            if (TunnelRelayStateManager.hybridConnectionManager != null)
            {
                await TunnelRelayStateManager.hybridConnectionManager.CloseAsync(CancellationToken.None).ConfigureAwait(false);
            }

            if (TunnelRelayStateManager.RelayRequestEventListener == null)
            {
                throw new InvalidOperationException("No request event listener was assigned");
            }

            HybridConnectionManagerOptions hybridConnectionManagerOptions = new HybridConnectionManagerOptions
            {
                ConnectionPath      = TunnelRelayStateManager.ApplicationData.HybridConnectionName,
                AzureRelayKeyName   = TunnelRelayStateManager.ApplicationData.HybridConnectionKeyName,
                AzureRelaySharedKey = TunnelRelayStateManager.ApplicationData.HybridConnectionSharedKey,
                AzureRelayUrlHost   = TunnelRelayStateManager.ApplicationData.HybridConnectionUrl,
            };

            if (string.IsNullOrEmpty(TunnelRelayStateManager.ApplicationData.RedirectionUrl))
            {
                TunnelRelayStateManager.ApplicationData.RedirectionUrl = "http://localhost:8080";
            }

            TunnelRelayStateManager.RelayRequestManagerOptions.CurrentValue = new RelayRequestManagerOptions
            {
                InternalServiceUrl = new Uri(TunnelRelayStateManager.ApplicationData.RedirectionUrl),
            };

#pragma warning disable CA5400 // Ensure HttpClient certificate revocation list check is not disabled - Allowing developers to use invalid certificates
            RelayRequestManager relayManager = new RelayRequestManager(
                new HttpClient(new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator,
            }),
                TunnelRelayStateManager.RelayRequestManagerOptions,
                Plugins.Where(details => details.IsEnabled).Select(details => details.PluginInstance),
                LoggingHelper.GetLogger <RelayRequestManager>(),
                RelayRequestEventListener);
#pragma warning restore CA5400 // Ensure HttpClient certificate revocation list check is not disabled - Allowing developers to use invalid certificates

            TunnelRelayStateManager.hybridConnectionManager = new HybridConnectionManager(
                Options.Create(hybridConnectionManagerOptions),
                relayManager);

            await TunnelRelayStateManager.hybridConnectionManager.InitializeAsync(CancellationToken.None).ConfigureAwait(false);
        }
Esempio n. 6
0
        public async Task TestGetOrdersAsync()
        {
            // Arrange
            var logger     = LoggingHelper.GetLogger <SalesController>();
            var service    = ServiceMocker.GetSalesService(nameof(TestGetOrdersAsync));
            var controller = new SalesController(logger, service);

            // Act
            var response = await controller.GetOrdersAsync() as ObjectResult;

            var value = response.Value as IPagedResponse <OrderInfo>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestGetImportedDatabases()
        {
            // Arrange
            var logger             = LoggingHelper.GetLogger <DocumentationController>();
            var hostingEnvironment = HostingEnvironmentMocker.GetHostingEnvironment();
            var apiConfig          = new UISettings();
            var dbService          = new DbService(hostingEnvironment, apiConfig);
            var controller         = new DocumentationController(logger, dbService);

            // Act
            var response = await controller.GetImportedDatabasesAsync() as ObjectResult;

            var value = response.Value as IListResponse <ImportedDatabase>;

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestGetProductsTestAsync()
        {
            // Arrange
            var logger     = LoggingHelper.GetLogger <WarehouseController>();
            var service    = ServiceMocker.GetWarehouseService(nameof(TestGetProductsTestAsync));
            var controller = new WarehouseController(logger, service);

            // Act
            var response = await controller.GetProductsAsync() as ObjectResult;

            var value = response.Value as IPagedResponse <Product>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Count() > 0);
        }
Esempio n. 9
0
        public async Task TestCloneOrderAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetCustomerIdentity().GetUserInfo();
            var service    = ServiceMocker.GetSalesService(userInfo, nameof(TestCloneOrderAsync));
            var controller = new SalesController(LoggingHelper.GetLogger <SalesController>(), service);
            var id         = 1;

            // Act
            var response = await controller.CloneOrderAsync(id) as ObjectResult;

            var value = response.Value as ISingleResponse <OrderHeader>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
        }
Esempio n. 10
0
        public async Task TestGetCreateOrderRequestAsync()
        {
            // Arrange
            var logger     = LoggingHelper.GetLogger <SalesController>();
            var service    = ServiceMocker.GetSalesService(nameof(TestGetCreateOrderRequestAsync));
            var controller = new SalesController(logger, service);

            // Act
            var response = await controller.GetCreateOrderRequestAsync() as ObjectResult;

            var value = response.Value as ISingleResponse <CreateOrderRequest>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Products.Count() > 0);
            Assert.True(value.Model.Customers.Count() > 0);
        }
Esempio n. 11
0
        public async Task TestGetCreateOrderRequestAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetCustomerIdentity().GetUserInfo();
            var service    = ServiceMocker.GetSalesService(userInfo, nameof(TestGetCreateOrderRequestAsync));
            var controller = new SalesController(LoggingHelper.GetLogger <SalesController>(), service);

            // Act
            var response = await controller.GetCreateOrderRequestAsync() as ObjectResult;

            var value = response.Value as ISingleResponse <Core.BusinessLayer.Requests.CreateOrderRequest>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Products.Count() > 0);
            Assert.True(value.Model.Customers.Count() > 0);
        }
Esempio n. 12
0
        public async Task TestGetOrdersByEmployeeAsync()
        {
            // Arrange
            var logger     = LoggingHelper.GetLogger <SalesController>();
            var service    = ServiceMocker.GetSalesService(nameof(TestGetOrdersByEmployeeAsync));
            var controller = new SalesController(logger, service);
            var employeeID = 1;

            // Act
            var response = await controller.GetOrdersAsync(employeeID : employeeID) as ObjectResult;

            var value = response.Value as IPagedResponse <OrderInfo>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Count(item => item.EmployeeID == employeeID) == value.Model.Count());
        }
Esempio n. 13
0
        public async Task TestGetOrdersByCustomerAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetCustomerIdentity().GetUserInfo();
            var service    = ServiceMocker.GetSalesService(userInfo, nameof(TestGetOrdersByCustomerAsync));
            var controller = new SalesController(LoggingHelper.GetLogger <SalesController>(), service);
            var customerID = 1;

            // Act
            var response = await controller.GetOrdersAsync(customerID : customerID) as ObjectResult;

            var value = response.Value as IPagedResponse <OrderInfo>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Count(item => item.CustomerID == customerID) == value.Model.Count());
        }
        public async Task TestGetInventoryByProductTestAsync()
        {
            // Arrange
            var logger      = LoggingHelper.GetLogger <WarehouseController>();
            var service     = ServiceMocker.GetWarehouseService(nameof(TestGetInventoryByProductTestAsync));
            var controller  = new WarehouseController(logger, service);
            var productID   = 1;
            var warehouseID = "W0001";

            // Act
            var response = await controller.GetProductInventoryAsync(productID, warehouseID) as ObjectResult;

            var value = response.Value as IListResponse <ProductInventory>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Count() > 0);
        }
        public async Task TestGetInventoryByProductTestAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetWarehouseOperatorIdentity().GetUserInfo();
            var service    = ServiceMocker.GetWarehouseService(userInfo, nameof(TestGetInventoryByProductTestAsync), true);
            var controller = new WarehouseController(LoggingHelper.GetLogger <WarehouseController>(), service);
            var productID  = 1;
            var locationID = "W01";

            // Act
            var response = await controller.GetProductInventoryAsync(productID, locationID) as ObjectResult;

            var value = response.Value as IListResponse <ProductInventory>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
            Assert.True(value.Model.Count() > 0);
        }
Esempio n. 16
0
        public async Task TestUpdateProductUnitPriceAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetWarehouseOperatorIdentity().GetUserInfo();
            var service    = ServiceMocker.GetWarehouseService(userInfo, nameof(TestUpdateProductUnitPriceAsync));
            var controller = new WarehouseController(LoggingHelper.GetLogger <WarehouseController>(), service);
            var id         = 1;
            var request    = new UpdateProductUnitPriceRequest
            {
                UnitPrice = 14.99m
            };

            // Act
            var response = await controller.PutProductUnitPriceAsync(id, request) as ObjectResult;

            var value = response.Value as ISingleResponse <Product>;

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestGetDatabaseDetailAsync()
        {
            // Arrange
            var logger             = LoggingHelper.GetLogger <DocumentationController>();
            var hostingEnvironment = HostingEnvironmentMocker.GetHostingEnvironment();
            var apiConfig          = new UISettings();
            var dbService          = new DbService(hostingEnvironment, apiConfig);
            var controller         = new DocumentationController(logger, dbService);
            var request            = new DbRequest
            {
                Name = "OnlineStore"
            };

            // Act
            var response = await controller.GetDatabaseDetailAsync(request) as ObjectResult;

            var value = response.Value as ISingleResponse <DatabaseDetail>;

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestImportDatabase()
        {
            // Arrange
            var logger             = LoggingHelper.GetLogger <DocumentationController>();
            var hostingEnvironment = HostingEnvironmentMocker.GetHostingEnvironment();
            var apiConfig          = new UISettings();
            var dbService          = new DbService(hostingEnvironment, apiConfig);
            var controller         = new DocumentationController(logger, dbService);
            var request            = new ImportDatabaseRequest
            {
                Name             = "OnlineStore",
                ConnectionString = "server=(local);database=OnlineStore;integrated security=yes;",
                ImportTables     = true,
                ImportViews      = true
            };

            // Act
            var response = await controller.ImportDatabaseAsync(request) as ObjectResult;

            var value = response.Value as ImportDatabaseResponse;

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestCreateProductTestAsync()
        {
            // Arrange
            var userInfo   = IdentityMocker.GetWarehouseOperatorIdentity().GetUserInfo();
            var service    = ServiceMocker.GetWarehouseService(userInfo, nameof(TestCreateProductTestAsync));
            var controller = new WarehouseController(LoggingHelper.GetLogger <WarehouseController>(), service);
            var request    = new PostProductRequest
            {
                ProductName       = "Test product",
                ProductCategoryID = 100,
                UnitPrice         = 9.99m,
                Description       = "unit tests"
            };

            // Act
            var response = await controller.PostProductAsync(request) as ObjectResult;

            var value = response.Value as ISingleResponse <Product>;

            service.Dispose();

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestEditDescriptionAsync()
        {
            // Arrange
            var hostingEnvironment = HostingEnvironmentMocker.GetHostingEnvironment();
            var apiConfig          = new UISettings();
            var dbService          = new DbService(hostingEnvironment, apiConfig);
            var logger             = LoggingHelper.GetLogger <DocumentationController>();
            var controller         = new DocumentationController(logger, dbService);
            var request            = new DbRequest
            {
                Name        = "OnlineStore",
                Table       = "Warehouse.Product",
                Type        = "table",
                Description = "Products catalog (unit tests)"
            };

            // Act
            var response = await controller.EditDescriptionAsync(request) as ObjectResult;

            var value = response.Value as ISingleResponse <EditDescription>;

            // Assert
            Assert.False(value.DidError);
        }
 public static ISalesService GetSalesService()
 => new SalesService(
     LoggingHelper.GetLogger <SalesService>(),
     DbContextMocker.GetOnlineStoreDbContext(),
     new UserInfo("mocker")
     );
 static Program()
 {
     Logger = LoggingHelper.GetLogger <Program>();
 }
 public static IWarehouseService GetWarehouseService()
 => new WarehouseService(
     LoggingHelper.GetLogger <WarehouseService>(),
     DbContextMocker.GetOnlineStoreDbContext(),
     new UserInfo("mocker")
     );
 public static ISalesService GetSalesService(IUserInfo userInfo, string dbName)
 => new SalesService(
     LoggingHelper.GetLogger <SalesService>(),
     userInfo,
     DbContextMocker.GetOnLineStoreDbContextInMemory(dbName)
     );
Esempio n. 25
0
        /// <summary>
        /// Initializes the plugins.
        /// </summary>
        public static void InitializePlugins()
        {
            PluginManager pluginManager = new PluginManager(LoggingHelper.GetLogger <PluginManager>());

            TunnelRelayStateManager.Plugins = pluginManager.InitializePlugins(TunnelRelayStateManager.applicationData);
        }
Esempio n. 26
0
 public static IWarehouseService GetWarehouseService(IUserInfo userInfo, string dbName)
 => new WarehouseService(
     LoggingHelper.GetLogger <WarehouseService>(),
     userInfo,
     DbContextMocker.GetOnlineStoreDbContextInMemory(dbName)
     );
Esempio n. 27
0
 public static IWarehouseService GetWarehouseService(IUserInfo userInfo, string dbName, bool seedWarehouseSchema = false)
 => new WarehouseService(
     LoggingHelper.GetLogger <WarehouseService>(),
     DbContextMocker.GetOnlineStoreDbContextInMemory(dbName, seedWarehouseSchema),
     userInfo
     );
Esempio n. 28
0
 public static IHumanResourcesService GetHumanResourcesService(IUserInfo userInfo, string dbName)
 => new HumanResourcesService(
     LoggingHelper.GetLogger <HumanResourcesService>(),
     DbContextMocker.GetOnlineStoreDbContextInMemory(dbName),
     userInfo
     );
 public static IWarehouseService GetWarehouseService(string dbName)
 => new WarehouseService(LoggingHelper.GetLogger <WarehouseService>(), new UserInfo("unittests"), DbContextMocker.GetOnLineStoreDbContextInMemory(dbName));
 public static IHumanResourcesService GetHumanResourcesService(string dbName)
 => new HumanResourcesService(LoggingHelper.GetLogger <HumanResourcesService>(), new UserInfo("unittests"), DbContextMocker.GetOnLineStoreDbContextInMemory(dbName));