Пример #1
0
        public void GetMedicineTypes_CorrectData_ListOfMedicineTypes()
        {
            // Arrange
            mock.Setup(x => x.GetMedicineTypes())
            .Returns(() =>
                     new OperationResult <IEnumerable <MedicineType> >(new List <MedicineType>
            {
                new MedicineType
                {
                    Id   = 1,
                    Name = "Liquid"
                },
                new MedicineType
                {
                    Id   = 2,
                    Name = "Tablet"
                }
            }));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.GetMedicineTypes() as OkObjectResult;
            var response = result.Value as Result <IEnumerable <MedicineType> >;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.OK, result.StatusCode);
            Assert.IsNotNull(response.Items);
            Assert.AreEqual(2, response.TotalCount);
            Assert.AreEqual(2, response.Items.Count());
        }
Пример #2
0
        public void GetSpecificMedicineDetails_CorrectData_MedicineDetails()
        {
            // Arrange
            mock.Setup(x => x.GetMedicineDetails(It.IsAny <int>()))
            .Returns(() =>
                     new OperationResult <Medicine>(new Medicine
            {
                Id               = 1,
                Name             = "Nazwa leku",
                ContentQuantity  = "20szt",
                Price            = 6.99M,
                Producer         = "Pharma",
                Description      = "Nowy super świetny lek!",
                MedicineTypeName = "Tabletki"
            }));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.GetSpecificMedicineDetails(It.IsAny <int>()) as OkObjectResult;
            var response = result.Value as Result <Medicine>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.OK, result.StatusCode);
            Assert.IsNotNull(response.Items);
            Assert.AreEqual(1, response.Items.Id);
        }
Пример #3
0
        public void AddMedicine_CorrectData_AddedNewMedicine()
        {
            // Arrange
            var model = new MedicineInputModel
            {
                Name            = "Nowy lek",
                ContentQuantity = "100ml",
                Price           = 23.49M,
                Description     = "Nowy jeszcze lepszy super lek",
                Producer        = "Pharma",
                MedicineTypeId  = 1
            };

            mock.Setup(x => x.CreateNewMedicine(model)).Returns(() =>
                                                                new OperationResult <string>(ResultResources.CreatingMedicineComplete));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.AddMedicine(model) as OkObjectResult;
            var response = result.Value as Result <string>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.OK, result.StatusCode);
            Assert.IsNotNull(response.Items);
            Assert.AreEqual(ResultResources.CreatingMedicineComplete, response.Items);
        }
Пример #4
0
        public void TestIfMedicinesAreFetchedFromDb()
        {
            var context      = DBSetup("testdb_" + DateTime.Now.ToString("MMddyyyyhhmmss"));
            var controller   = new MedicinesController(context, new Mapper(MapperSetup()));
            var lstMedicines = new List <Medicine>()
            {
                new Medicine()
                {
                    Id        = 1,
                    Name      = "Dolopar",
                    Brand     = "Cipla",
                    Strength  = "500 mg",
                    Inventory = new List <Inventory>()
                    {
                        new Inventory()
                        {
                            MedicineId = 1, BatchIdentifier = "122020", Price = 100.00f, Quantity = 50, Id = 1
                        }
                    }
                },
                new Medicine()
                {
                    Id        = 2,
                    Name      = "Fenak Plus",
                    Brand     = "Cipla",
                    Strength  = "200 mg",
                    Inventory = new List <Inventory>()
                }
            };

            controller.GetData().Should().BeEquivalentTo(lstMedicines);
            context.Dispose();
        }
        public void CreateNewEntry_WhenCalled_ShouldInvokeCreateNewEntryOfRepository()
        {
            //Arrange
            var repositoryServiceMock = new Mock <IRepository>();
            var sut = new MedicinesController(repositoryServiceMock.Object);

            //Act
            sut.CreateNewEntry(new Medicine());

            //Assert
            repositoryServiceMock.Verify(m => m.CreateNewEntry(It.IsAny <Medicine>()), Times.Once);
        }
        public void SearchMedicineByName_WhenCalled_ShouldInvokeGetMedicineOfRepository()
        {
            //Arrange
            var repositoryServiceMock = new Mock <IRepository>();
            var sut = new MedicinesController(repositoryServiceMock.Object);

            //Act
            sut.SearchMedicineByName("name");

            //Assert
            repositoryServiceMock.Verify(m => m.GetMedicine(It.IsAny <string>()), Times.Once);
        }
        public void Get_WhenCalled_ShouldInvokeAllMedicinesOfRepository( )
        {
            //Arrange
            var repositoryServiceMock = new Mock <IRepository>();
            var sut = new MedicinesController(repositoryServiceMock.Object);

            //Act
            sut.Get();

            //Assert
            repositoryServiceMock.Verify(m => m.AllMedicines, Times.Once);
        }
Пример #8
0
        public void AddMedicine_NullInputModel_ModelStateError()
        {
            // Arrange
            var medicinesController = new MedicinesController(It.IsAny <IMedicinesRepository>());

            // Act
            var result   = medicinesController.AddMedicine(It.IsAny <MedicineInputModel>()) as BadRequestObjectResult;
            var response = result.Value as List <OperationError>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsNotNull(response);
            Assert.AreEqual(ErrorResources.ModelStateError, response.Single().Message);
        }
Пример #9
0
        public void GetMedicineList_InvalidData_ModelStateError()
        {
            // Arrange
            var medicinesController = new MedicinesController(It.IsAny <IMedicinesRepository>());

            medicinesController.ModelState.AddModelError(string.Empty, string.Empty);

            // Act
            var result   = medicinesController.GetMedicineList(It.IsAny <GetMedicinesViewModel>()) as BadRequestObjectResult;
            var response = result.Value as List <OperationError>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsNotNull(response);
            Assert.AreEqual(ErrorResources.ModelStateError, response.Single().Message);
        }
Пример #10
0
        public void GetMedicineList_CorrectData_ListOfMedicines()
        {
            // Arrange
            mock.Setup(x => x.GetMedicineList(It.IsAny <GetMedicinesViewModel>()))
            .Returns(() =>
                     new OperationResult <IEnumerable <MedicineHeader> >(new List <MedicineHeader>(returnedMedicineList)));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.GetMedicineList(It.IsAny <GetMedicinesViewModel>()) as OkObjectResult;
            var response = result.Value as Result <IEnumerable <MedicineHeader> >;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.OK, result.StatusCode);
            Assert.IsNotNull(response.Items);
            Assert.AreEqual(2, response.TotalCount);
            Assert.AreEqual(2, response.Items.Count());
        }
Пример #11
0
        public void GetSpecificMedicineDetails_IdDoNotExists_NotFoundError()
        {
            // Arrange
            mock.Setup(x => x.GetMedicineDetails(It.IsAny <int>()))
            .Returns(() =>
                     new OperationResult <Medicine>(
                         new OperationError((int)ErrorCodes.NotFound, ErrorResources.ItemNotFound)));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.GetSpecificMedicineDetails(It.IsAny <int>()) as BadRequestObjectResult;
            var response = result.Value as IEnumerable <OperationError>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsNotNull(response);
            Assert.AreEqual(1, response.Count());
            Assert.AreEqual(ErrorResources.ItemNotFound, response.Single().Message);
            Assert.AreEqual((int)ErrorCodes.NotFound, response.Single().ErrorCode);
        }
        public async Task MigrateMedicines_InvalidData_StatusCode()
        {
            // Arrange
            var mock       = new Mock <IMedicineStoreRepository>();
            var mockMapper = new Mock <IMapper>();

            mock.Setup(x => x.AddMedicinesRange(It.IsAny <List <Medicine> >()))
            .Returns(() => Task.CompletedTask);
            mock.Setup(x => x.SaveAllAsync())
            .Returns(() => Task.FromResult(false));
            mockMapper.Setup(x => x.Map <List <Medicine> >(It.IsAny <IEnumerable <AddMedicineViewModel> >()))
            .Returns(() => It.IsAny <List <Medicine> >());

            var controller = new MedicinesController(mock.Object, mockMapper.Object);

            // Act
            var actionResult = await controller.MigrateMedicines(It.IsAny <IEnumerable <AddMedicineViewModel> >()) as BadRequestResult;

            // Assert
            Assert.Equal((int)HttpStatusCode.BadRequest, actionResult.StatusCode);
        }
Пример #13
0
        public void GetMedicineTypes_DatabaseConnectionProblem_DatabaseError()
        {
            // Arrange
            mock.Setup(x => x.GetMedicineTypes())
            .Returns(() =>
                     new OperationResult <IEnumerable <MedicineType> >(
                         new OperationError((int)ErrorCodes.InternalServerError, ErrorResources.DatabaseError)));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.GetMedicineTypes() as BadRequestObjectResult;
            var response = result.Value as IEnumerable <OperationError>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsNotNull(response);
            Assert.AreEqual(1, response.Count());
            Assert.AreEqual(ErrorResources.DatabaseError, response.Single().Message);
            Assert.AreEqual((int)ErrorCodes.InternalServerError, response.Single().ErrorCode);
        }
        public async Task Get_CorrectData_MedicineHeaderViewModelListAsync()
        {
            // Arrange
            var mock       = new Mock <IMedicineStoreRepository>();
            var mockMapper = new Mock <IMapper>();

            mock.Setup(x => x.GetAllMedicinesAsync())
            .Returns(() => Task.FromResult(GetMedicineList()));
            mockMapper.Setup(x => x.Map <IEnumerable <MedicineHeaderViewModel> >(It.IsAny <List <Medicine> >()))
            .Returns(() => GetMedicineHeaderViewModel());

            var controller = new MedicinesController(mock.Object, mockMapper.Object);

            // Act
            var actionResult = await controller.Get() as OkObjectResult;

            var result = actionResult.Value as List <MedicineHeaderViewModel>;

            // Assert
            Assert.Equal((int)HttpStatusCode.OK, actionResult.StatusCode);
            Assert.Equal(2, result.Count);
        }
Пример #15
0
 private void btnDelete_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         MyDbContext         context             = new MyDbContext();
         MedicinesController medicinesController = new MedicinesController();
         Medicine            medicine            = MedicineDataGrid.SelectedItem as Medicine;
         if (MedicineDataGrid.SelectedItem != null)
         {
             context.Medicines.Attach(medicine);
             medicinesController.RemoveMedicine(medicine);
             MessageBox.Show("Препарат успешно удален.");
         }
         MedicineDataGrid.ClearValue(ItemsControl.ItemsSourceProperty);
         List <Medicine> medicines = context.Medicines.Include(med => med.Provider).Include(med1 => med1.Categories).ToList();
         MedicineDataGrid.ItemsSource = medicines;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        public async Task GetDetails_CorrectData_MedicineDetailsViewModel()
        {
            // Arrange
            var mock       = new Mock <IMedicineStoreRepository>();
            var mockMapper = new Mock <IMapper>();

            mock.Setup(x => x.GetMedicineAsync(It.IsAny <int>()))
            .Returns(() => Task.FromResult(GetMedicineList(1).FirstOrDefault()));
            mockMapper.Setup(x => x.Map <MedicineDetailsViewModel>(It.IsAny <Medicine>()))
            .Returns(() => GetMedicineDetailsViewModel());

            var controller = new MedicinesController(mock.Object, mockMapper.Object);

            // Act
            var actionResult = await controller.GetDetails(It.IsAny <int>()) as OkObjectResult;

            var result = actionResult.Value as MedicineDetailsViewModel;

            // Assert
            Assert.Equal((int)HttpStatusCode.OK, actionResult.StatusCode);
            Assert.NotNull(result);
        }
Пример #17
0
        public void TestIfMedicinesAreAddedToDb()
        {
            var context    = DBSetup("testdb_" + DateTime.Now.ToString("MMddyyyyhhmmss"));
            var controller = new MedicinesController(context, new Mapper(MapperSetup()));
            var postObj    = new Medicine()
            {
                Name     = "GlimPride",
                Brand    = "Sanofi",
                Strength = "50 mg"
            };

            controller.AddData(postObj).Should().BeEquivalentTo(new StatusCodeResult(200));
            context.Medicines.FirstOrDefault(med => med.Id == 3).Should().BeEquivalentTo(new Models.Medicine
            {
                Id        = 3,
                Name      = "GlimPride",
                Brand     = "Sanofi",
                Strength  = "50 mg",
                Inventory = new List <Models.Inventory>()
            });
            context.Dispose();
        }
Пример #18
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                MyDbContext         context             = new MyDbContext();
                MedicinesController medicinesController = new MedicinesController();
                if (double.TryParse(PriceMedicine.Text, out double price) == true && int.TryParse(AmmountMedicine.Text, out int ammount) == true &&
                    int.TryParse(NameMedicine.Text, out int medicineint) == false &&
                    int.TryParse(CategoriesMedicine.Text, out int categoryint) == false &&
                    int.TryParse(ProviderMedicine.Text, out int providerint) == false
                    )
                {
                    double   priceMed   = double.Parse(PriceMedicine.Text);
                    int      ammountMed = int.Parse(AmmountMedicine.Text);
                    Medicine medicine   = new Medicine(NameMedicine.Text, CategoriesMedicine.Text, ProviderMedicine.Text, priceMed, ammountMed);

                    if (medicinesController.AddMedicine(medicine))
                    {
                        MessageBox.Show("Препарат успешно добавлен.");
                        MedicineDataGrid.ClearValue(ItemsControl.ItemsSourceProperty);
                        List <Medicine> medicines = context.Medicines.Include(med => med.Provider).Include(med1 => med1.Categories).ToList();
                        MedicineDataGrid.ItemsSource = medicines;
                    }
                    else
                    {
                        MessageBox.Show("Этот препарат уже существует или введенные данные имеют неверный формат.");
                    }
                }
                else
                {
                    MessageBox.Show("Неверный формат данных");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #19
0
        public void AddMedicine_InvalidData_ManyValidationErrors()
        {
            // Arrange
            var model = new MedicineInputModel
            {
                Name            = "",
                ContentQuantity = "1",
                Price           = 23.49M,
                Description     = "     ",
                Producer        = "      P        ",
                MedicineTypeId  = 0
            };

            mock.Setup(x => x.CreateNewMedicine(model))
            .Returns(() =>
                     new OperationResult <string>(new List <OperationError>
            {
                new OperationError((int)ErrorCodes.BadRequest, ErrorResources.FieldCannotBeEmpty,
                                   nameof(model.Name)),
                new OperationError((int)ErrorCodes.BadRequest,
                                   string.Format(ErrorResources.InvalidFieldLength, 2, 10), nameof(model.ContentQuantity)),
                new OperationError((int)ErrorCodes.BadRequest, ErrorResources.FieldCannotBeEmpty,
                                   nameof(model.Description))
            }));

            var medicinesController = new MedicinesController(mock.Object);

            // Act
            var result   = medicinesController.AddMedicine(model) as BadRequestObjectResult;
            var response = result.Value as IEnumerable <OperationError>;

            // Assert
            Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsNotNull(response);
            Assert.AreEqual(3, response.Count());
            Assert.AreEqual((int)ErrorCodes.BadRequest, response.First().ErrorCode);
        }
        public void Initialize()
        {
            mockRepository = new Mock <IMedicineRepository>();

            _controller = new MedicinesController(mockRepository.Object);
        }
 public void SetUp()
 {
     _serviceMock = new Mock <IMedicinesService>();
     _controller  = new MedicinesController(_serviceMock.Object);
 }
Пример #22
0
 public MedicinesControllerTests()
 {
     medicineController = new MedicinesController();
     medicineViewModel  = new MedicineViewModel();
     medicineContracts  = new MedicinesContracts();
 }