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); } } }