예제 #1
0
        static void Main(string[] args)
        {
            if (!args.Count().Equals(10))
            {
                Console.WriteLine("Neispravan broj argumenata!");
            }
            else
            {
                // Save arguments to variables
                int    rowNumber         = Int32.Parse(args[0]);
                int    colNumber         = Int32.Parse(args[1]);
                int    cacheCapacity     = Int32.Parse(args[2]);
                string filePathDivers    = args[3];
                string filePathSpecialty = args[4];
                string fileEquipmentPath = args[5];
                int    depth             = Int32.Parse(args[6]);
                int    temperature       = Int32.Parse(args[7]);
                bool   nightDive         = args[8] == "0" ? false : true;
                int    camera            = Int32.Parse(args[9]);

                // Validation
                rowNumber     = (rowNumber >= 24 && rowNumber <= 40) ? rowNumber : 24;
                colNumber     = (colNumber >= 80 && colNumber <= 160) ? colNumber : 80;
                cacheCapacity = (cacheCapacity >= rowNumber && cacheCapacity <= 400) ? cacheCapacity : rowNumber;
                depth         = (depth >= 5 && depth <= 40) ? depth : 40;
                temperature   = (temperature >= 0 && temperature <= 35) ? temperature : 10;
                camera        = (camera >= 0 && camera <= 5) ? camera : 0;

                // Read files
                string[] diversRaw     = Reader.ReadFile(filePathDivers);
                string[] superPowerRaw = Reader.ReadFile(filePathSpecialty);
                string[] equipmentRaw  = Reader.ReadFile(fileEquipmentPath);

                Dive dive = new Dive(depth, temperature, nightDive, camera);

                // Cache init
                Cache cache = Cache.GetInstance();
                cache.InitCache(cacheCapacity * colNumber, rowNumber - 1);

                // Model
                DiversManagement    diversManagement    = new DiversManagement(dive);
                EquipmentManagement equipmentManagement = new EquipmentManagement();
                // View
                DiversView diversView = new DiversView(rowNumber, colNumber);
                // Controller
                DiversController diversController = new DiversController(diversManagement, diversView);

                diversManagement.AddDiversToList(diversRaw, superPowerRaw);
                diversManagement.FilterDivers(depth, temperature, nightDive);

                equipmentManagement.LoadEquipment(equipmentRaw);
                diversManagement.AssignEquipmentToDivers(equipmentManagement.GetAllEquipment(), dive);

                // Add controller to view
                diversView.StateController = diversController;
                diversController.Initialize();
            }
        }
예제 #2
0
        public void GetDive_Should_Return_NotFound_Dive_With_Invalid_Id()
        {
            //Arrange
            DiversController _MockLstDivesController = new DiversController(_MockDivingService.Object);

            //Act
            var resultDives = _MockLstDivesController.GetDive(3);
            var NotOkResult = resultDives as NotFoundResult;

            Assert.AreEqual(404, NotOkResult.StatusCode);
        }
예제 #3
0
        public void GetDive_Should_Return_Found_Dive()
        {
            //Arrange
            DiversController DivesController = new DiversController(_MockDivingService.Object);

            //Act
            var resultDives = DivesController.GetDive(1);
            var OkResult    = resultDives as OkObjectResult;

            Assert.IsNotNull(resultDives);
            Assert.AreEqual(200, OkResult.StatusCode);
            Assert.AreEqual(OkResult.Value, _MockLstDives[0]);
        }
예제 #4
0
        public void GetDives_WhenCalled_Should_ReturnTypeOfDives()
        {
            //Arrange
            DiversController DivesController = new DiversController(_MockDivingService.Object);

            // Act
            var resultDives = DivesController.GetDives();

            // Assert
            Assert.IsInstanceOf <IEnumerable <Dive> >(resultDives);
            Assert.IsNotNull(resultDives);
            CollectionAssert.AreEqual(resultDives, _MockLstDives);
        }
예제 #5
0
        public void Post_ValidDive_Should_Return_CreatedResponse()
        {
            // Arrange
            Dive             testItem        = new Dive(3, "Karpathos", 25, 200);
            DiversController DivesController = new DiversController(_MockDivingService.Object);

            // Act
            IActionResult createdResponse = DivesController.Post(testItem);
            var           OkCreated       = createdResponse as CreatedAtActionResult;

            // Assert
            Assert.IsNotNull(createdResponse);
            Assert.AreEqual(201, OkCreated.StatusCode);
            Assert.IsInstanceOf <CreatedAtActionResult>(createdResponse);
        }
예제 #6
0
        public void GetDivesPart2_WhenCalled_Should_Return_TypeOf_Of_OkResult()
        {
            //Arrange
            DiversController DivesController = new DiversController(_MockDivingService.Object);

            // Act
            var resultDives = DivesController.GetDivesPart2();
            var OkResult    = resultDives as OkObjectResult;


            // Assert
            Assert.IsNotNull(resultDives);
            Assert.IsNotNull(OkResult);
            Assert.AreEqual(OkResult.Value, _MockLstDives);
            Assert.AreEqual(200, OkResult.StatusCode);
        }
예제 #7
0
        public void Post_InValidDive_Should_Return_BadRequest()
        {
            // Arrange
            Dive             testItem        = new Dive(3, "Karpathos", -25, 200);
            DiversController DivesController = new DiversController(_MockDivingService.Object);

            DivesController.ModelState.AddModelError("divedepth", "Cannot have a negative value for depth");

            // Act
            IActionResult createdResponse = DivesController.Post(testItem);
            var           NotOkCreated    = createdResponse as BadRequestObjectResult;

            // Assert
            Assert.IsNotNull(createdResponse);
            Assert.AreEqual(400, NotOkCreated.StatusCode);
            Assert.IsInstanceOf <BadRequestObjectResult>(createdResponse);
        }