예제 #1
0
        public void Update_computer_name()
        {
            ComputersController computersController = new ComputersController();

            _managementController.AddComputer(new AddComputerDto
            {
                Name          = "TestComputer",
                Description   = "New computer",
                Price         = 1500,
                ImageFilename = "test.png"
            });

            ComputerInfoDto   computerInfoDto   = computersController.FindComputerByName("TestComputer");
            UpdateComputerDto updateComputerDto = new UpdateComputerDto
            {
                Name          = "Amstrad CPC",
                Description   = "New Amstrad with 128Kb",
                Price         = 1000,
                ImageFilename = "amstrad.png"
            };

            _managementController.UpdateComputer(computerInfoDto.Id, updateComputerDto);

            ComputerInfoDto updatedComputer = computersController.GetComputerInfo(computerInfoDto.Id);

            Assert.AreEqual(computerInfoDto.Id, updatedComputer.Id);
            Assert.AreEqual(updateComputerDto.Name, updatedComputer.Name);
            Assert.AreEqual(updateComputerDto.Description, updatedComputer.Description);
            Assert.AreEqual(updateComputerDto.Price, updatedComputer.Price);
            Assert.AreEqual(updateComputerDto.ImageFilename, updatedComputer.ImageFilename);
        }
        public void Raise_an_error_when_adding_a_computer_to_existing_order_with_negative_quantity()
        {
            ComputersController computersController = new ComputersController();
            ComputerInfoDto     computerInfoDto     = computersController.FindComputerByName("MacBook Pro 15");
            NewOrderDto         newOrderDto         = new NewOrderDto
            {
                OrderLines = new List <NewOrderLineDto> {
                    new NewOrderLineDto {
                        ComputerId = computerInfoDto.Id, Quantity = 1
                    }
                },
            };
            NewOrderIdDto newOrderIdDto = ordersController.CreateNewOrder(newOrderDto);

            Assert.IsNotNull(newOrderIdDto);

            Exception exception = Assert.Throws <Exception>(() =>
                                                            ordersController.AddComputerToOrder(newOrderIdDto.Id, new AddComputersToOrderDto
            {
                OrderLines = new List <AddOrderLineDto> {
                    new AddOrderLineDto {
                        ComputerId = computerInfoDto.Id, Quantity = -1
                    }
                },
            }));

            Assert.AreEqual("Computer quantity cannot be negative", exception.Message);
        }
        public void Raise_an_error_when_searching_image_info_of_non_existing_computer()
        {
            ComputersController computersController = new ComputersController();
            Exception           exception           = Assert.Throws <Exception>(() => computersController.GetComputerImage("unknown_guid"));

            Assert.AreEqual("Computer not found, guid: unknown_guid", exception.Message);
        }
        public void Create_new_order_with_one_computer()
        {
            ComputersController computersController = new ComputersController();
            ComputerInfoDto     computerInfoDto     = computersController.FindComputerByName("MacBook Pro 15");
            int     computerQuantity = 1;
            Decimal expectedPrice    = computerInfoDto.Price;

            List <OrderInformationDto> orders = ordersController.All();
            int previousNumberOfItems         = orders.Count;

            NewOrderDto newOrderDto = new NewOrderDto
            {
                OrderLines = new List <NewOrderLineDto> {
                    new NewOrderLineDto {
                        ComputerId = computerInfoDto.Id, Quantity = computerQuantity
                    }
                }
            };

            NewOrderIdDto newOrderIdDto = ordersController.CreateNewOrder(newOrderDto);

            Assert.IsNotNull(newOrderIdDto);

            orders = ordersController.All();
            OrderInformationDto order = ordersController.All().First(ord => ord.OrderId == newOrderIdDto.Id);

            Assert.AreEqual(previousNumberOfItems + 1, orders.Count);
            List <OrderLineInfoDto> newOrderOrderLinesInfo = order.OrderLinesInfo;

            Assert.AreEqual(1, newOrderOrderLinesInfo.Count);
            Assert.AreEqual(computerInfoDto.Id, newOrderOrderLinesInfo.First().ComputerId);
            Assert.AreEqual(computerQuantity, newOrderOrderLinesInfo.First().Quantity);
            Assert.AreEqual(expectedPrice, order.Price);
        }
        public void Add_second_computer_to_existing_order()
        {
            ComputersController computersController = new ComputersController();
            ComputerInfoDto     computerInfoDto     = computersController.FindComputerByName("MacBook Pro 15");
            Decimal             expectedPrice       = computerInfoDto.Price;
            NewOrderDto         newOrderDto         = new NewOrderDto
            {
                OrderLines = new List <NewOrderLineDto> {
                    new NewOrderLineDto {
                        ComputerId = computerInfoDto.Id, Quantity = 1
                    }
                }
            };
            NewOrderIdDto newOrderIdDto = ordersController.CreateNewOrder(newOrderDto);

            Assert.IsNotNull(newOrderIdDto);

            ComputerInfoDto secondComputerInfoDto = computersController.FindComputerByName("iMac 27");

            expectedPrice += secondComputerInfoDto.Price * 2;
            ordersController.AddComputerToOrder(newOrderIdDto.Id, new AddComputersToOrderDto
            {
                OrderLines = new List <AddOrderLineDto> {
                    new AddOrderLineDto {
                        ComputerId = secondComputerInfoDto.Id, Quantity = 2
                    }
                }
            });
            OrderInformationDto orderInformationDto = ordersController.GetOrderInformation(newOrderIdDto.Id);

            Assert.AreEqual(2, orderInformationDto.OrderLinesInfo.Count);
            Assert.AreEqual(computerInfoDto.Id, orderInformationDto.OrderLinesInfo[0].ComputerId);
            Assert.AreEqual(secondComputerInfoDto.Id, orderInformationDto.OrderLinesInfo[1].ComputerId);
            Assert.AreEqual(expectedPrice, orderInformationDto.Price);
        }
예제 #6
0
        public void Delete_NonExistingCAProd_ShouldReturnErrorAndResult()
        {
            // Arrange.
            var controller = new ComputersController();

            controller.Request = HttpRequestHandler.GenerateHttpRequestMessage();

            string serverName  = TestConstants.NonExistingComputerAccountToDeleteProd;
            string environment = TestConstants.ProductionEnvironment;
            string projectName = TestConstants.ExistingOrganizationalUnitProd;
            string siteName    = TestConstants.SitePrimary;

            var caRequest = new ComputerAccountRequest()
            {
                serverName  = serverName,
                environment = environment,
                projectName = projectName,
                siteName    = siteName
            };

            var expected = ComputerAccountResultGenerator.GenerateResultForNonExistingCADeleteProd(siteName);

            // Act.
            var result =
                controller.Delete(serverName, TestConstants.checkpointAdminAcccessToken);

            // Assert.
            Assert.IsNotNull(result);
            var caResult = result.Content.ReadAsAsync <ComputerAccountResult>().Result;

            Assert.AreEqual(expected.action, caResult.action);
            Assert.AreEqual(expected.message, caResult.message);
            Assert.AreEqual(expected.objectADPath, caResult.objectADPath);
            Assert.AreEqual(expected.serverName, caResult.serverName);
        }
예제 #7
0
        public void Delete_existing_order()
        {
            ComputersController computersController = new ComputersController();
            string      macBookId   = computersController.FindComputerByName("MacBook Pro 15").Id;
            string      imacId      = computersController.FindComputerByName("iMac 27").Id;
            NewOrderDto newOrderDto = new NewOrderDto
            {
                OrderLines = new List <NewOrderLineDto>
                {
                    new NewOrderLineDto {
                        ComputerId = macBookId, Quantity = 2
                    },
                    new NewOrderLineDto {
                        ComputerId = imacId, Quantity = 2
                    }
                }
            };
            OrdersController ordersController = new OrdersController("emilybeck", "password1");
            NewOrderIdDto    orderIdDto       = ordersController.CreateNewOrder(newOrderDto);

            Assert.IsTrue(ordersController.All().Exists(order => order.OrderId.Equals(orderIdDto.Id)));

            _managementController.DeleteOrder(orderIdDto.Id);

            List <OrderInformationDto> allOrders = ordersController.All();

            Assert.IsFalse(allOrders.Exists(order => order.OrderId.Equals(orderIdDto.Id)));
        }
예제 #8
0
        public void Get_GetComputer_ValidateReturn(Computer computer)
        {
            //Given
            using (var context = new HardwareContext(_options))
            {
                context.Computers.Add(computer);
                context.SaveChanges();
            }

            //When
            using (var context = new HardwareContext(_options))
            {
                Assert.Equal(1, context.Computers.Count());
            }

            ActionResult <Computer> result;

            //Then
            using (var context = new HardwareContext(_options))
            {
                var computersController = new ComputersController(context);
                result = computersController.Get(computer.Id);
            }

            var okResult = Assert.IsType <OkObjectResult>(result.Result);
            var value    = Assert.IsType <Computer>(okResult.Value);

            Assert.Equal(computer, value, new ModelEqualityComparer <Computer>());
        }
 public ComputersControllerTests()
 {
     _mapperMock               = new Mock <IMapper>();
     _computersServiceMock     = new Mock <IComputersService>();
     _graphicsCardsServiceMock = new Mock <IGraphicsCardsService>();
     _urlHelperMock            = new Mock <IUrlHelper>();
     _controller               = new ComputersController(_computersServiceMock.Object, _graphicsCardsServiceMock.Object, _urlHelperMock.Object, _mapperMock.Object);
 }
        public void GetComputersByUser_ShouldOnlyReturnComputersOfTheUser()
        {
            var context    = GetDemoContext();
            var controller = new ComputersController(context);

            var result = controller.GetComputers("686990B4-3263-4566-9713-27666E894AF3") as IQueryable <Computer>;

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count());
        }
        public void Get_a_list_of_all_computers()
        {
            ComputersController computersController = new ComputersController();
            string expectedComputerName             = "MacBook Pro 15";

            List <ComputerInfoDto> computers = computersController.All();

            Assert.AreEqual(5, computers.Count);
            Assert.AreEqual(expectedComputerName, computers.First().Name);
        }
        public void GetComputers_ShouldReturnAllComputers()
        {
            var context    = GetDemoContext();
            var controller = new ComputersController(context);

            var result = controller.GetComputers() as TestComputerDbSet;

            Assert.IsNotNull(result);
            Assert.AreEqual(context.Computers.Local.Count, result.Local.Count);
        }
        public void Get_computer_detailed_information_by_guid()
        {
            ComputersController computersController = new ComputersController();
            string computerName = "MacBook Pro 15";

            ComputerInfoDto computer = computersController.FindComputerByName(computerName);

            Assert.AreEqual(computerName, computer.Name);
            Assert.AreEqual("Macbook pro 15' Description", computer.Description);
            Assert.AreEqual(1500, computer.Price);
        }
        public void Raise_an_error_when_searching_a_non_existing_computer()
        {
            ComputersController computersController = new ComputersController();
            string computerName = "Unknown";

            Exception exception = Assert.Throws <Exception>(() => computersController.FindComputerByName(computerName));

            Assert.AreEqual("Computer not found, name: Unknown", exception.Message);

            exception = Assert.Throws <Exception>(() => computersController.GetComputerInfo("unknownid"));
            Assert.AreEqual("Computer not found, Id: unknownid", exception.Message);
        }
예제 #15
0
        public void Get_ShouldReturnWelcomeMessage()
        {
            // Arrange.
            var controller = new ComputersController();

            controller.Request = HttpRequestHandler.GenerateHttpRequestMessage();
            var expected = "Welcome to Wind API! - ComputersController";

            // Act.
            var result = controller.Get();

            // Assert.
            Assert.IsNotNull(result);
            var getResult = result.Content.ReadAsAsync <string>().Result;

            Assert.AreEqual(expected, getResult);
        }
예제 #16
0
        public void RunCommand_InvalidTokenServerCommand_ShouldReturnForbidden()
        {
            // Arrange.
            var controller = new ComputersController();

            controller.Request = HttpRequestHandler.GenerateHttpRequestMessage();
            var expected = ExecutionResultGenerator.GenerateExecutionResultForInvalidTokenServerCommand();

            // Act.
            var result = controller.RunCommand(TestConstants.invalidServerName, TestConstants.checkpointNonAdminAcccessToken, CommandRequestGenerator.GenerateValidCommandRequest_InvalidServerAndCommand());

            // Assert.
            Assert.IsNotNull(result);
            var executionResult = result.Content.ReadAsAsync <ExecutionResult>().Result;

            Assert.AreEqual(expected.commandExitCode, executionResult.commandExitCode);
            Assert.AreEqual(expected.resultMessage, executionResult.resultMessage);
            Assert.AreEqual(expected.resultError, executionResult.resultError);
        }
예제 #17
0
        public void Create_new_computer()
        {
            ComputersController computersController = new ComputersController();
            int numberOfComputers = computersController.All().Count;

            _managementController.AddComputer(new AddComputerDto
            {
                Name          = "TestComputer",
                Description   = "New computer",
                Price         = 1500,
                ImageFilename = "test.png"
            });

            var allComputers             = computersController.All();
            int currentNumberOfComputers = allComputers.Count;

            Assert.AreEqual(numberOfComputers + 1, currentNumberOfComputers);
            Assert.IsNotNull(allComputers.First(comp => comp.Name == "TestComputer"));
        }
예제 #18
0
        public void Delete_computer()
        {
            ComputersController computersController = new ComputersController();

            _managementController.AddComputer(new AddComputerDto
            {
                Name          = "TestComputer",
                Description   = "New computer",
                Price         = 1500,
                ImageFilename = "test.png"
            });
            ComputerInfoDto computerInfoDto = computersController.FindComputerByName("TestComputer");

            _managementController.DeleteComputer(computerInfoDto.Id);

            Exception exception = Assert.Throws <Exception>(() => computersController.GetComputerInfo("TestComputer"));

            Assert.AreEqual("Computer not found, Id: TestComputer", exception.Message);
        }
예제 #19
0
        public void TestGetComputerById()
        {
            var mockRepo = new Mock <IComputer>();

            mockRepo.Setup(repo => repo.GetComputerByID("AAA")).Returns(Startup.gettestsession("AAA"));
            //var mockRepo = new Mock<IUser>();
            //mockRepo.Setup(repo => repo.GetUserByID(1)).Returns(Startup.gettestsession(1));
            var controller = new ComputersController(mockRepo.Object);



            string expectedName = "computer AAA";
            var    result       = controller.GetComputer("AAA");

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);
            var com      = Assert.IsType <Computer>(okResult.Value);

            Assert.Equal(expectedName, com.Cpuname);
        }
예제 #20
0
        public void Post_InsertComputer_ValidateExists(Computer computer)
        {
            using (var context = new HardwareContext(_options))
            {
                var computersController = new ComputersController(context);
                computersController.PostBody(computer);
            }

            using (var context = new HardwareContext(_options))
            {
                Assert.Equal(1, context.Computers.Count());
                Assert.Equal(computer, context.Computers.Include(c => c.Disks)
                             .Include(c => c.Gpus)
                             .ThenInclude(g => g.Memory)
                             .Include(c => c.Memories)
                             .Include(c => c.MotherBoard)
                             .Include(c => c.Processor)
                             .Single(), new ModelEqualityComparer <Computer>());
            }
        }
        public void Get_computer_image()
        {
            ComputersController computersController = new ComputersController();
            string computerName = "iMac 27";

            string [] expectedResult =
            {
                "                                                        ",
                "  *      *    *                           ****   ****** ",
                "         **  **   ***     ***            *    *       * ",
                " **      * ** *      *   *                    *      *  ",
                "  *      *    *   ****   *                ****      *   ",
                "  *      *    *  *   *   *               *         *    ",
                " ***     *    *   ****    ***            ******    *    ",
                "                                                        "
            };
            ComputerInfoDto computerInfo = computersController.FindComputerByName(computerName);

            ComputerImageInfoDto imageInfo = computersController.GetComputerImage(computerInfo.Id);

            imageInfo.Content.ForEach(Console.WriteLine);
            Assert.AreEqual(expectedResult, imageInfo.Content);
        }
예제 #22
0
        public void Post_NewCAInNewOUProd_ShouldReturnSuccessAndResult()
        {
            // Arrange.
            var controller = new ComputersController();

            controller.Request = HttpRequestHandler.GenerateHttpRequestMessage();

            string serverName  = TestConstants.NewComputerAccountProd;
            string environment = TestConstants.ProductionEnvironment;
            string projectName = TestConstants.NewOrganizationalUnitProd;
            string siteName    = TestConstants.SitePrimary;

            var caRequest = new ComputerAccountRequest()
            {
                serverName  = serverName,
                environment = environment,
                projectName = projectName,
                siteName    = siteName
            };

            var expected = ComputerAccountResultGenerator.GenerateResultForNewCAInProd(true, siteName);

            // Act.
            var result = controller.Post(TestConstants.checkpointAdminAcccessToken, caRequest);

            // Cleanup.
            ActiveDirectory.DeleteOrganizationalUnitTreeVoid(environment, projectName);

            // Assert.
            Assert.IsNotNull(result);
            var caResult = result.Content.ReadAsAsync <ComputerAccountResult>().Result;

            Assert.AreEqual(expected.action, caResult.action);
            Assert.AreEqual(expected.message, caResult.message);
            Assert.AreEqual(expected.objectADPath, caResult.objectADPath);
            Assert.AreEqual(expected.serverName, caResult.serverName);
        }