예제 #1
0
        public void BodyWeightExercise_NegativeSetsReps_DefaultToZero()
        {
            var exercise = new BodyWeightExercise("Name", -5, -20);

            Assert.AreEqual(0, exercise.Sets);
            Assert.AreEqual(0, exercise.Reps);
        }
예제 #2
0
        public void SuperSet_NegativeSets_UseDefault()
        {
            var pushups = new BodyWeightExercise("Pushups", 5, 20);
            var sSet    = new SuperSet("Name", -3, pushups, pushups);

            Assert.AreEqual(0, sSet.Cycles);
        }
예제 #3
0
        public void TimedExercise_CustomName_UsesCustomName()
        {
            var pushups = new BodyWeightExercise("Pushups", 5, 20);
            var timed   = new TimedExercise(pushups, new TimeSpan(0, 1, 0), "BestEver");

            Assert.AreEqual("BestEver", timed.Name);
        }
예제 #4
0
        public void TimedExercise_CheckDefaults_HappyPath()
        {
            var pushups = new BodyWeightExercise("Pushups", 5, 20);
            var timed   = new TimedExercise(pushups, new TimeSpan(0, 1, 0));

            Assert.AreEqual("Timed Pushups", timed.Name);
            Assert.AreEqual(1, timed.Time.Minutes);
            Assert.AreEqual(pushups, timed.Exercise);
        }
예제 #5
0
        public void BodyWeightExercise_CheckDefaults_WithPR()
        {
            var exercise = new BodyWeightExercise("Pushups", 5, 20, 100);

            Assert.AreEqual("Pushups", exercise.Name);
            Assert.AreEqual(5, exercise.Sets);
            Assert.AreEqual(20, exercise.Reps);
            Assert.AreEqual(100, exercise.Pr);
        }
예제 #6
0
        public void SuperSet_CheckDefaults_HappyPath()
        {
            var pushups = new BodyWeightExercise("Pushups", 5, 20);
            var pullups = new BodyWeightExercise("Pullups", 5, 5);
            var sSet    = new SuperSet("SuperSet", 3, pushups, pullups);

            Assert.AreEqual("SuperSet", sSet.Name);
            Assert.AreEqual(3, sSet.Cycles);
            Assert.AreEqual(pushups, sSet.First);
            Assert.AreEqual(pullups, sSet.Second);
        }
예제 #7
0
        public void BodyWeightExercise_NullName_UseDefaultName()
        {
            var exercise = new BodyWeightExercise(null, 5, 20);

            Assert.AreEqual("Nameless Body Weight Exercise", exercise.Name);
        }
예제 #8
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            base.OnCreateView(inflater, container, savedInstanceState);

            var view = inflater.Inflate(Resource.Layout.CreateExerciseDialog, container, false);
            var createExerciseButton = view.FindViewById <Button>(Resource.Id.create_exercise);
            var exerciseName         = view.FindViewById <EditText>(Resource.Id.exercise_name);
            var setCount             = view.FindViewById <EditText>(Resource.Id.body_weight_sets);
            var repCount             = view.FindViewById <EditText>(Resource.Id.body_weight_reps);
            var startingWeight       = view.FindViewById <EditText>(Resource.Id.starting_weight);
            var weightIncrement      = view.FindViewById <EditText>(Resource.Id.weight_increase);
            var minCount             = view.FindViewById <EditText>(Resource.Id.timed_minutes);
            var secCount             = view.FindViewById <EditText>(Resource.Id.timed_secs);
            var spinner = view.FindViewById <Spinner>(Resource.Id.exercise_spinner);


            var adapter = ArrayAdapter.CreateFromResource(view.Context, Resource.Array.exercise_array, Android.Resource.Layout.SimpleSpinnerItem);

            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            spinner.Adapter = adapter;

            spinner.ItemSelected += (sender, args) =>
            {
                var selected = (string)spinner.GetItemAtPosition(args.Position);
                if (selected == "Body Weight")
                {
                    var bodyWeightLayout = view.FindViewById <LinearLayout>(Resource.Id.body_weight_type);
                    bodyWeightLayout.Visibility = ViewStates.Visible;

                    var weightedLayout = view.FindViewById <LinearLayout>(Resource.Id.weighted_type);
                    weightedLayout.Visibility = ViewStates.Gone;

                    var timedLayout = view.FindViewById <LinearLayout>(Resource.Id.timed_type);
                    timedLayout.Visibility = ViewStates.Gone;
                }
                if (selected == "Weighted")
                {
                    var bodyWeightLayout = view.FindViewById <LinearLayout>(Resource.Id.body_weight_type);
                    bodyWeightLayout.Visibility = ViewStates.Visible;

                    var weightedLayout = view.FindViewById <LinearLayout>(Resource.Id.weighted_type);
                    weightedLayout.Visibility = ViewStates.Visible;

                    var timedLayout = view.FindViewById <LinearLayout>(Resource.Id.timed_type);
                    timedLayout.Visibility = ViewStates.Gone;
                }
                if (selected == "Timed")
                {
                    var bodyWeightLayout = view.FindViewById <LinearLayout>(Resource.Id.body_weight_type);
                    bodyWeightLayout.Visibility = ViewStates.Gone;

                    var weightedLayout = view.FindViewById <LinearLayout>(Resource.Id.weighted_type);
                    weightedLayout.Visibility = ViewStates.Gone;

                    var timedLayout = view.FindViewById <LinearLayout>(Resource.Id.timed_type);
                    timedLayout.Visibility = ViewStates.Visible;
                }
            };


            createExerciseButton.Click += (sender, args) =>
            {
                var type = spinner.SelectedItem.ToString();

                var name = exerciseName.Text;
                if (string.IsNullOrWhiteSpace(name))
                {
                    return;
                }

                if (type == "Body Weight")
                {
                    if (string.IsNullOrWhiteSpace(setCount.Text))
                    {
                        return;
                    }
                    if (string.IsNullOrWhiteSpace(repCount.Text))
                    {
                        return;
                    }
                    var sets = Convert.ToInt32(setCount.Text);
                    var reps = Convert.ToInt32(repCount.Text);
                    OnCreateExersice?.Invoke(this, new CreateExerciseEventArgs(new BodyWeightExercise(name, sets, reps)));
                    Dismiss();
                }
                if (type == "Weighted")
                {
                    if (string.IsNullOrWhiteSpace(setCount.Text))
                    {
                        return;
                    }
                    if (string.IsNullOrWhiteSpace(repCount.Text))
                    {
                        return;
                    }
                    if (string.IsNullOrWhiteSpace(startingWeight.Text))
                    {
                        return;
                    }
                    var sets      = Convert.ToInt32(setCount.Text);
                    var reps      = Convert.ToInt32(repCount.Text);
                    var starting  = Convert.ToInt32(startingWeight.Text);
                    var increment = string.IsNullOrWhiteSpace(weightIncrement.Text) ? Convert.ToInt32(weightIncrement.Text) : 0;
                    OnCreateExersice?.Invoke(this, new CreateExerciseEventArgs(new WeightedExercise(name, sets, reps, starting, increment)));
                }
                if (type == "Timed")
                {
                    var min  = string.IsNullOrWhiteSpace(minCount.Text) ? Convert.ToInt32(minCount.Text) : 0;
                    var sec  = string.IsNullOrWhiteSpace(secCount.Text) ? Convert.ToInt32(setCount.Text) : 0;
                    var time = new TimeSpan(0, min, sec);
                    var temp = new BodyWeightExercise(name, 0, 0);
                    OnCreateExersice?.Invoke(this, new CreateExerciseEventArgs(new TimedExercise(temp, time)));
                }
                Dismiss();
            };

            return(view);
        }