Example #1
0
        }//Populate the list of Service objects

        private void btnAddService_Click(object sender, EventArgs e)
        {
            //Here we call from the Service Contract logic

            if (txtSDescript.Text.Equals(""))
            {
                MessageBox.Show("Please enter service description details", "EMPTY FIELDS!!",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }//Data validation
            if (txtSDuration.Text.Equals(""))//Data Validation
            {
                MessageBox.Show("Please enter service duration details", "EMPTY FIELDS!!",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }//Data Validation
            else
            {
                description = txtSDescript.Text;
                duration    = int.Parse(txtSDuration.Text);
                newService  = new Service(description, duration);

                Sl.AddService(newService);
                MessageBox.Show("Service successfully Added", " ADD",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
                //Perform Fom transition
                Hide();
                frmServiceContract form = new frmServiceContract();
                form.ShowDialog();
            } //Add the Service
        }     //Validate inputs and add service
        public async Task AddService_AddingService_ServiceAdded()
        {
            var serviceData    = new List <Service>().AsQueryable();
            var serviceMockSet = new Mock <DbSet <Service> >();

            serviceMockSet.As <IDbAsyncEnumerable <Service> >()
            .Setup(m => m.GetAsyncEnumerator())
            .Returns(new TestDbAsyncEnumerator <Service>(serviceData.GetEnumerator()));
            serviceMockSet.As <IQueryable <Service> >()
            .Setup(m => m.Provider)
            .Returns(new TestDbAsyncQueryProvider <Service>(serviceData.Provider));
            serviceMockSet.As <IQueryable <Service> >().Setup(m => m.Expression).Returns(serviceData.Expression);
            var serviceDateData    = new List <ServiceDate>().AsQueryable();
            var serviceDateMockSet = new Mock <DbSet <ServiceDate> >();

            serviceDateMockSet.As <IDbAsyncEnumerable <ServiceDate> >()
            .Setup(m => m.GetAsyncEnumerator())
            .Returns(new TestDbAsyncEnumerator <ServiceDate>(serviceDateData.GetEnumerator()));
            serviceDateMockSet.As <IQueryable <ServiceDate> >()
            .Setup(m => m.Provider)
            .Returns(new TestDbAsyncQueryProvider <ServiceDate>(serviceDateData.Provider));
            serviceDateMockSet.As <IQueryable <ServiceDate> >()
            .Setup(m => m.Expression)
            .Returns(serviceDateData.Expression);
            var mockContext = new Mock <ExtremeSportDBEntities>();

            mockContext.Setup(m => m.Service).Returns(serviceMockSet.Object);
            mockContext.Setup(m => m.ServiceDate).Returns(serviceDateMockSet.Object);
            var serviceLogic = new ServiceLogic {
                Context = mockContext.Object
            };
            var b = await serviceLogic.AddService(new DtoService
            {
                InstructorId = 1,
                Dates        = new List <DateTime> {
                    new DateTime(1944, 05, 09)
                },
                ServiceTypeId = 1
            });

            Assert.AreEqual(b, true);
            serviceMockSet.Verify(m => m.Add(It.IsAny <Service>()), Times.Once());
            mockContext.Verify(m => m.SaveChangesAsync(), Times.Once());
        }