UnitTest




using Bll;

using Model;

using Dal;



using NUnit.Framework;

using NUnit.Mocks;

using System.ServiceModel;

using Constant;



namespace OES.Nunit

{

    /// <summary>

    /// This class is used for test use business logic layer.

    /// </summary>

    [TestFixture]

    public class UserNumit

    {

        private DynamicMock mock = null;

        private IUserDal userDal = null;

        private IUserBll userBll = null;

        private User user = null;



        [SetUp]

        public void Initialize()

        {

            user = new User();

            user.UserName = "a1";

            user.Password = "1";

            user.RoleType = "student";

        }

        [Test]

        public void LogOn()

        {

            mock = new DynamicMock(typeof(IUserDal));

            userDal = (IUserDal)mock.MockInstance;

            userBll = new UserBll();

            userBll = new UserBll(userDal);

            mock.ExpectAndReturn("RetrieveUserByUserName", user, user.UserName);

            User getUser = userBll.RetrieveUserByUserName(user.UserName);

            Assert.IsNotNull(getUser, "User is not null");

        }



        [Test]

        public void LogOnException()

        {

            mock = new DynamicMock(typeof(IUserDal));

            userDal = (IUserDal)mock.MockInstance;

            userBll = new UserBll();

            userBll = new UserBll(userDal);



            mock.ExpectAndThrow("RetrieveUserByUserName", new UserException(), user.UserName);

            Assert.Throws<FaultException<MyExceptionContainer>>(

                () => this.userBll.RetrieveUserByUserName(user.UserName)

                );

        }

        [Test]

        public void ChangePassword()

        {

            mock = new DynamicMock(typeof(IUserDal));

            userDal = (IUserDal)mock.MockInstance;

            userBll = new UserBll();

            userBll = new UserBll(userDal);

            string[] str = new string[] { "1", "123" };

            mock.ExpectAndReturn("UpdatePassword", 1, str);

            bool isChangePassword = userBll.UpdatePassword(str[0], str[1]);

            Assert.True(isChangePassword, "Changed password");

        }



        [Test]

        public void ChangePasswordException()

        {

            mock = new DynamicMock(typeof(IUserDal));

            userDal = (IUserDal)mock.MockInstance;

            userBll = new UserBll();

            userBll = new UserBll(userDal);

            string[] str = new string[] { "1", "123" };



            mock.ExpectAndThrow("UpdatePassword", new UserException(), str);

            Assert.Throws<FaultException<MyExceptionContainer>>(

                () => this.userBll.UpdatePassword(str[0],str[1])

                );

        }



        [TestFixtureTearDown]

        ~UserNumit()

        {

            userBll = null;

            user = null;

            userDal = null;

        }

    }

}

 

你可能感兴趣的:(test)