public void GetInvoiceStatisticReturnsInvoiceStatisticWhenGivenValidInvoiceId()
        {
            MedicalVendorInvoiceStatistic medicalVendorInvoiceStatistic =
                _repository.GetInvoiceStatistic(VALID_MEDICAL_VENDOR_INVOICE_ID);

            Assert.IsNotNull(medicalVendorInvoiceStatistic);
            Assert.AreEqual(VALID_MEDICAL_VENDOR_INVOICE_ID, medicalVendorInvoiceStatistic.Id);
        }
        public void CreateMedicalVendorInvoiceStatisticSetsAverageHourlyRateToZeroIfEndTimeIsNull()
        {
            AddRowToDataTable(25.33m, new DateTime(2001, 1, 1), null);

            MedicalVendorInvoiceStatistic medicalVendorInvoiceStatistic = _medicalVendorInvoiceStatisticFactory.
                                                                          CreateMedicalVendorInvoiceStatistic(new PhysicianInvoiceEntity(), _medicalVendorInvoiceDataTable.Rows[0]);

            Assert.AreEqual(0m, medicalVendorInvoiceStatistic.AverageHourlyRate);
        }
        public void CreateMedicalVendorInvoiceStatisticReturns1AverageRateFor60AmountInOneMinute()
        {
            const decimal invoiceAmount       = 60m;
            var           evaluationStartTime = new DateTime(2001, 1, 1, 12, 0, 0);

            AddRowToDataTable(invoiceAmount, evaluationStartTime, evaluationStartTime.AddMinutes(60));

            MedicalVendorInvoiceStatistic medicalVendorInvoiceStatistic = _medicalVendorInvoiceStatisticFactory.
                                                                          CreateMedicalVendorInvoiceStatistic(new PhysicianInvoiceEntity(), _medicalVendorInvoiceDataTable.Rows[0]);

            Assert.AreEqual(1m, medicalVendorInvoiceStatistic.AverageHourlyRate);
        }
        public void CreateMedicalVendorInvoiceStatisticReturns0AverageRateForInstantEvaluation()
        {
            const decimal invoiceAmount  = 30m;
            var           evaluationTime = new DateTime(2001, 1, 1, 12, 0, 0);

            AddRowToDataTable(invoiceAmount, evaluationTime, evaluationTime);

            MedicalVendorInvoiceStatistic medicalVendorInvoiceStatistic = _medicalVendorInvoiceStatisticFactory.
                                                                          CreateMedicalVendorInvoiceStatistic(new PhysicianInvoiceEntity(), _medicalVendorInvoiceDataTable.Rows[0]);

            Assert.AreEqual(0m, medicalVendorInvoiceStatistic.AverageHourlyRate);
        }
        public void CreateMedicalVendorInvoiceStatisticSetsDataRowFieldsToStatisticFieldsCorrectly()
        {
            const long    medicalVendorInvoiceId = 25;
            const decimal invoiceAmount          = 25.33m;
            const int     numberOfEvaluations    = 43;

            var medicalVendorInvoiceEntity = new PhysicianInvoiceEntity(medicalVendorInvoiceId);

            AddRowToDataTable(invoiceAmount, numberOfEvaluations);

            MedicalVendorInvoiceStatistic medicalVendorInvoiceStatistic = _medicalVendorInvoiceStatisticFactory.
                                                                          CreateMedicalVendorInvoiceStatistic(medicalVendorInvoiceEntity, _medicalVendorInvoiceDataTable.Rows[0]);

            Assert.AreEqual(medicalVendorInvoiceId, medicalVendorInvoiceStatistic.Id);
            Assert.AreEqual(invoiceAmount, medicalVendorInvoiceStatistic.InvoiceAmount);
            Assert.AreEqual(numberOfEvaluations, medicalVendorInvoiceStatistic.NumberOfEvaluations);
        }
Beispiel #6
0
        public MedicalVendorInvoiceStatistic CreateMedicalVendorInvoiceStatistic(PhysicianInvoiceEntity medicalVendorInvoiceEntity,
                                                                                 DataRow invoiceItemStatisticsForInvoice)
        {
            if (medicalVendorInvoiceEntity == null)
            {
                throw new ArgumentNullException("medicalVendorInvoiceEntity");
            }
            var invoiceAmount           = invoiceItemStatisticsForInvoice.Field <decimal>("InvoiceAmount");
            var numberOfEvaluations     = invoiceItemStatisticsForInvoice.Field <int>("NumberOfEvaluations");
            var evaluationStartTime     = invoiceItemStatisticsForInvoice.Field <DateTime?>("EvaluationStartTime");
            var evaluationEndTime       = invoiceItemStatisticsForInvoice.Field <DateTime?>("EvaluationEndTime");
            var evaluationTimeInMinutes = (evaluationStartTime.HasValue && evaluationEndTime.HasValue) ?
                                          (decimal)(evaluationEndTime.Value - evaluationStartTime.Value).TotalMinutes : 0;
            var averageHourlyRate             = evaluationTimeInMinutes != 0 ? invoiceAmount / evaluationTimeInMinutes : 0;
            var medicalVendorInvoiceStatistic = new MedicalVendorInvoiceStatistic(medicalVendorInvoiceEntity.PhysicianInvoiceId, invoiceAmount,
                                                                                  numberOfEvaluations, averageHourlyRate);

            _medicalVendorInvoiceBaseFactory.SetMedicalVendorInvoiceBaseFields(medicalVendorInvoiceStatistic, medicalVendorInvoiceEntity);
            return(medicalVendorInvoiceStatistic);
        }
Beispiel #7
0
        public List <MedicalVendorInvoiceStatistic> CreateMedicalVendorInvoiceStatistics(IEnumerable <PhysicianInvoiceEntity>
                                                                                         medicalVendorInvoiceEntities, DataTable medicalVendorInvoiceItemStatistics)
        {
            if (medicalVendorInvoiceEntities == null)
            {
                throw new ArgumentNullException("medicalVendorInvoiceEntities");
            }
            if (medicalVendorInvoiceItemStatistics == null)
            {
                throw new ArgumentNullException("medicalVendorInvoiceItemStatistics");
            }

            var medicalVendorInvoices = new List <MedicalVendorInvoiceStatistic>();

            foreach (var medicalVendorInvoiceEntity in medicalVendorInvoiceEntities)
            {
                DataRow invoiceItemStatisticsForInvoice = medicalVendorInvoiceItemStatistics.
                                                          Select("MedicalVendorInvoiceId = " + medicalVendorInvoiceEntity.PhysicianInvoiceId).Single();
                MedicalVendorInvoiceStatistic medicalVendorInvoiceStatistic = CreateMedicalVendorInvoiceStatistic
                                                                                  (medicalVendorInvoiceEntity, invoiceItemStatisticsForInvoice);
                medicalVendorInvoices.Add(medicalVendorInvoiceStatistic);
            }
            return(medicalVendorInvoices);
        }