public void HaveAuthenticationAttribute_AndCheckForModeratorRole()
        {
            var baseType = typeof(ModeratorBaseController);

            var mockedLakeFactory     = new Mock <ILakeFactory>();
            var mockedLocationFactory = new Mock <ILocationFactory>();
            var mockedLakeService     = new Mock <ILakeService>();
            var mockedLocationService = new Mock <ILocationService>();
            var mockedFishService     = new Mock <IFishService>();

            var lakeController = new LakeController(mockedLakeFactory.Object, mockedLocationFactory.Object, mockedLakeService.Object, mockedLocationService.Object, mockedFishService.Object);

            Assert.IsTrue(baseType.IsAssignableFrom(lakeController.GetType()));
            var methodsInfo = lakeController.GetType().GetMethods();

            foreach (var method in methodsInfo)
            {
                if (method.Name == "Add")
                {
                    var attributes = method.DeclaringType.BaseType.CustomAttributes.Any(a => a.NamedArguments.Any(n => n.MemberName == "Roles" && n.TypedValue.Value.ToString() == "Moderator"));
                    Assert.IsTrue(attributes);
                }
            }
        }