|
15 | 15 | import org.openmrs.Obs; |
16 | 16 | import org.openmrs.Patient; |
17 | 17 | import org.openmrs.Provider; |
| 18 | +import org.openmrs.Visit; |
18 | 19 | import org.openmrs.api.context.Context; |
19 | 20 | import org.openmrs.module.htmlformentry.schema.HtmlFormField; |
20 | 21 | import org.openmrs.module.htmlformentry.schema.HtmlFormSchema; |
@@ -999,7 +1000,37 @@ public void setupEditRequest(MockHttpServletRequest request, Map<String, String> |
999 | 1000 | request.addParameter(widgets.get("Date:"), dateAsString(date)); |
1000 | 1001 | request.addParameter(widgets.get("Location:"), "2"); |
1001 | 1002 |
|
1002 | | - }; |
| 1003 | + }; @Test |
| 1004 | + public void testSimplestFormSuccess() throws Exception { |
| 1005 | + final Date date = new Date(); |
| 1006 | + new RegressionTestHelper() { |
| 1007 | + |
| 1008 | + @Override |
| 1009 | + public String getFormName() { |
| 1010 | + return "simplestForm"; |
| 1011 | + } |
| 1012 | + |
| 1013 | + @Override |
| 1014 | + public String[] widgetLabels() { |
| 1015 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 1016 | + } |
| 1017 | + |
| 1018 | + @Override |
| 1019 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 1020 | + request.addParameter(widgets.get("Date:"), dateAsString(date)); |
| 1021 | + request.addParameter(widgets.get("Location:"), "2"); |
| 1022 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 1023 | + } |
| 1024 | + |
| 1025 | + @Override |
| 1026 | + public void testResults(SubmissionResults results) { |
| 1027 | + results.assertNoErrors(); |
| 1028 | + results.assertEncounterCreated(); |
| 1029 | + results.assertProvider(502); |
| 1030 | + results.assertLocation(2); |
| 1031 | + } |
| 1032 | + }.run(); |
| 1033 | + } |
1003 | 1034 |
|
1004 | 1035 | @Override |
1005 | 1036 | public void testEditedResults(SubmissionResults results) { |
@@ -2694,7 +2725,275 @@ public void testResults(SubmissionResults results) { |
2694 | 2725 | } |
2695 | 2726 | }.run(); |
2696 | 2727 | } |
2697 | | - |
| 2728 | + |
| 2729 | + @Test |
| 2730 | + public void testShouldFailIfEncounterDateBeforeVisitStartDate() throws Exception { |
| 2731 | + Date visitStartDate = new DateTime(2010, 10, 10, 0, 0, 0).toDate(); |
| 2732 | + Date encounterDate = new DateTime(2009, 10, 9, 0, 0, 0).toDate(); |
| 2733 | + Visit visit = new Visit(); |
| 2734 | + visit.setStartDatetime(visitStartDate); |
| 2735 | + |
| 2736 | + new RegressionTestHelper() { |
| 2737 | + |
| 2738 | + @Override |
| 2739 | + public Visit getVisit() { |
| 2740 | + return visit; |
| 2741 | + } |
| 2742 | + |
| 2743 | + @Override |
| 2744 | + public String getFormName() { |
| 2745 | + return "simplestForm"; |
| 2746 | + } |
| 2747 | + |
| 2748 | + @Override |
| 2749 | + public String[] widgetLabels() { |
| 2750 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 2751 | + } |
| 2752 | + |
| 2753 | + @Override |
| 2754 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 2755 | + request.addParameter(widgets.get("Date:"), dateAsString(encounterDate)); |
| 2756 | + request.addParameter(widgets.get("Location:"), "2"); |
| 2757 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 2758 | + } |
| 2759 | + |
| 2760 | + @Override |
| 2761 | + public void testResults(SubmissionResults results) { |
| 2762 | + results.assertNoEncounterCreated(); |
| 2763 | + results.assertErrors(1); |
| 2764 | + List<FormSubmissionError> errors = results.getValidationErrors(); |
| 2765 | + Assert.assertEquals("Cannot be before visit start date", errors.get(0).getError()); |
| 2766 | + } |
| 2767 | + }.run(); |
| 2768 | + } |
| 2769 | + |
| 2770 | + @Test |
| 2771 | + public void testShouldFailIfEncounterDateAfterVisitEndDate() throws Exception { |
| 2772 | + Date visitStartDate = new DateTime(2010, 10, 10, 0, 0, 0).toDate(); |
| 2773 | + Date visitEndDate = new DateTime(2010, 10, 12, 0, 0, 0).toDate(); |
| 2774 | + Date encounterDate = new DateTime(2010, 10, 13, 0, 0, 0).toDate(); |
| 2775 | + Visit visit = new Visit(); |
| 2776 | + visit.setStartDatetime(visitStartDate); |
| 2777 | + visit.setStopDatetime(visitEndDate); |
| 2778 | + |
| 2779 | + new RegressionTestHelper() { |
| 2780 | + |
| 2781 | + @Override |
| 2782 | + public Visit getVisit() { |
| 2783 | + return visit; |
| 2784 | + } |
| 2785 | + |
| 2786 | + @Override |
| 2787 | + public String getFormName() { |
| 2788 | + return "simplestForm"; |
| 2789 | + } |
| 2790 | + |
| 2791 | + @Override |
| 2792 | + public String[] widgetLabels() { |
| 2793 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 2794 | + } |
| 2795 | + |
| 2796 | + @Override |
| 2797 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 2798 | + request.addParameter(widgets.get("Date:"), dateAsString(encounterDate)); |
| 2799 | + request.addParameter(widgets.get("Location:"), "2"); |
| 2800 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 2801 | + } |
| 2802 | + |
| 2803 | + @Override |
| 2804 | + public void testResults(SubmissionResults results) { |
| 2805 | + results.assertNoEncounterCreated(); |
| 2806 | + results.assertErrors(1); |
| 2807 | + List<FormSubmissionError> errors = results.getValidationErrors(); |
| 2808 | + Assert.assertEquals("Cannot be after visit stop date", errors.get(0).getError()); |
| 2809 | + } |
| 2810 | + }.run(); |
| 2811 | + } |
| 2812 | + |
| 2813 | + @Test |
| 2814 | + public void testShouldNotFailIfEncounterDateWithinVisitDates() throws Exception { |
| 2815 | + Date visitStartDate = new DateTime(2010, 10, 10, 0, 0, 0).toDate(); |
| 2816 | + Date visitEndDate = new DateTime(2010, 10, 12, 0, 0, 0).toDate(); |
| 2817 | + Date encounterDate = new DateTime(2010, 10, 11, 0, 0, 0).toDate(); |
| 2818 | + Visit visit = new Visit(); |
| 2819 | + visit.setStartDatetime(visitStartDate); |
| 2820 | + visit.setStopDatetime(visitEndDate); |
| 2821 | + |
| 2822 | + new RegressionTestHelper() { |
| 2823 | + |
| 2824 | + @Override |
| 2825 | + public Visit getVisit() { |
| 2826 | + return visit; |
| 2827 | + } |
| 2828 | + |
| 2829 | + @Override |
| 2830 | + public String getFormName() { |
| 2831 | + return "simplestForm"; |
| 2832 | + } |
| 2833 | + |
| 2834 | + @Override |
| 2835 | + public String[] widgetLabels() { |
| 2836 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 2837 | + } |
| 2838 | + |
| 2839 | + @Override |
| 2840 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 2841 | + request.addParameter(widgets.get("Date:"), dateAsString(encounterDate)); |
| 2842 | + request.addParameter(widgets.get("Location:"), "2"); |
| 2843 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 2844 | + } |
| 2845 | + |
| 2846 | + @Override |
| 2847 | + public void testResults(SubmissionResults results) { |
| 2848 | + results.assertNoErrors(); |
| 2849 | + results.assertEncounterCreated(); |
| 2850 | + results.assertProvider(502); |
| 2851 | + results.assertLocation(2); |
| 2852 | + } |
| 2853 | + }.run(); |
| 2854 | + } |
| 2855 | + |
| 2856 | + @Test |
| 2857 | + public void testShouldNotFailIfEncounterDateAfterVisitStartDateAndVisitActive() throws Exception { |
| 2858 | + Date visitStartDate = new DateTime(2010, 10, 10, 0, 0, 0).toDate(); |
| 2859 | + Date encounterDate = new DateTime(2010, 10, 11, 0, 0, 0).toDate(); |
| 2860 | + Visit visit = new Visit(); |
| 2861 | + visit.setStartDatetime(visitStartDate); |
| 2862 | + |
| 2863 | + new RegressionTestHelper() { |
| 2864 | + |
| 2865 | + @Override |
| 2866 | + public Visit getVisit() { |
| 2867 | + return visit; |
| 2868 | + } |
| 2869 | + |
| 2870 | + @Override |
| 2871 | + public String getFormName() { |
| 2872 | + return "simplestForm"; |
| 2873 | + } |
| 2874 | + |
| 2875 | + @Override |
| 2876 | + public String[] widgetLabels() { |
| 2877 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 2878 | + } |
| 2879 | + |
| 2880 | + @Override |
| 2881 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 2882 | + request.addParameter(widgets.get("Date:"), dateAsString(encounterDate)); |
| 2883 | + request.addParameter(widgets.get("Location:"), "2"); |
| 2884 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 2885 | + } |
| 2886 | + |
| 2887 | + @Override |
| 2888 | + public void testResults(SubmissionResults results) { |
| 2889 | + results.assertNoErrors(); |
| 2890 | + results.assertEncounterCreated(); |
| 2891 | + results.assertProvider(502); |
| 2892 | + results.assertLocation(2); |
| 2893 | + } |
| 2894 | + }.run(); |
| 2895 | + } |
| 2896 | + |
| 2897 | + @Test |
| 2898 | + public void testShouldNotFailIfEncounterDateSameDayAsVisitStartDateAndHasNoTimeComponent() throws Exception { |
| 2899 | + Date visitStartDate = new DateTime(2010, 10, 10, 10, 10, 0).toDate(); |
| 2900 | + Date encounterDate = new DateTime(2010, 10, 10, 0, 0, 0).toDate(); |
| 2901 | + Visit visit = new Visit(); |
| 2902 | + visit.setStartDatetime(visitStartDate); |
| 2903 | + |
| 2904 | + new RegressionTestHelper() { |
| 2905 | + |
| 2906 | + @Override |
| 2907 | + public Visit getVisit() { |
| 2908 | + return visit; |
| 2909 | + } |
| 2910 | + |
| 2911 | + @Override |
| 2912 | + public String getFormName() { |
| 2913 | + return "simplestFormWithTimeComponent"; |
| 2914 | + } |
| 2915 | + |
| 2916 | + @Override |
| 2917 | + public String[] widgetLabels() { |
| 2918 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 2919 | + } |
| 2920 | + |
| 2921 | + @Override |
| 2922 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 2923 | + Calendar cal = Calendar.getInstance(); |
| 2924 | + cal.setTime(encounterDate); |
| 2925 | + cal.set(Calendar.MILLISECOND, 0); |
| 2926 | + |
| 2927 | + request.addParameter(widgets.get("Date:"), dateAsString(encounterDate)); |
| 2928 | + request.addParameter(widgets.get("Location:"), "2"); |
| 2929 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 2930 | + |
| 2931 | + // hack since time components don't have labels, have to specify actual widget names |
| 2932 | + request.addParameter("w1hours", String.valueOf(cal.get(Calendar.HOUR_OF_DAY))); |
| 2933 | + request.addParameter("w1minutes", String.valueOf(cal.get(Calendar.MINUTE))); |
| 2934 | + request.addParameter("w1seconds", String.valueOf(cal.get(Calendar.SECOND))); |
| 2935 | + } |
| 2936 | + |
| 2937 | + @Override |
| 2938 | + public void testResults(SubmissionResults results) { |
| 2939 | + results.assertNoErrors(); |
| 2940 | + results.assertEncounterCreated(); |
| 2941 | + results.assertProvider(502); |
| 2942 | + results.assertLocation(2); |
| 2943 | + } |
| 2944 | + }.run(); |
| 2945 | + } |
| 2946 | + |
| 2947 | + @Test |
| 2948 | + public void testShouldFailIfEncounterDateBeforeVisitStartDateOnSameDayAndHasTimeComponent() throws Exception { |
| 2949 | + Date visitStartDate = new DateTime(2010, 10, 10, 10, 10, 0).toDate(); |
| 2950 | + Date encounterDate = new DateTime(2010, 10, 10, 8, 0, 0).toDate(); |
| 2951 | + Visit visit = new Visit(); |
| 2952 | + visit.setStartDatetime(visitStartDate); |
| 2953 | + |
| 2954 | + new RegressionTestHelper() { |
| 2955 | + |
| 2956 | + @Override |
| 2957 | + public Visit getVisit() { |
| 2958 | + return visit; |
| 2959 | + } |
| 2960 | + |
| 2961 | + @Override |
| 2962 | + public String getFormName() { |
| 2963 | + return "simplestFormWithTimeComponent"; |
| 2964 | + } |
| 2965 | + |
| 2966 | + @Override |
| 2967 | + public String[] widgetLabels() { |
| 2968 | + return new String[] { "Date:", "Location:", "Provider:" }; |
| 2969 | + } |
| 2970 | + |
| 2971 | + @Override |
| 2972 | + public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { |
| 2973 | + Calendar cal = Calendar.getInstance(); |
| 2974 | + cal.setTime(encounterDate); |
| 2975 | + cal.set(Calendar.MILLISECOND, 0); |
| 2976 | + |
| 2977 | + request.addParameter(widgets.get("Date:"), dateAsString(encounterDate)); |
| 2978 | + request.addParameter(widgets.get("Location:"), "2"); |
| 2979 | + request.addParameter(widgets.get("Provider:"), "502"); |
| 2980 | + |
| 2981 | + // hack since time components don't have labels, have to specify actual widget names |
| 2982 | + request.addParameter("w1hours", String.valueOf(cal.get(Calendar.HOUR_OF_DAY))); |
| 2983 | + request.addParameter("w1minutes", String.valueOf(cal.get(Calendar.MINUTE))); |
| 2984 | + request.addParameter("w1seconds", String.valueOf(cal.get(Calendar.SECOND))); |
| 2985 | + } |
| 2986 | + |
| 2987 | + @Override |
| 2988 | + public void testResults(SubmissionResults results) { |
| 2989 | + results.assertNoEncounterCreated(); |
| 2990 | + results.assertErrors(1); |
| 2991 | + List<FormSubmissionError> errors = results.getValidationErrors(); |
| 2992 | + Assert.assertEquals("Cannot be before visit start date", errors.get(0).getError()); |
| 2993 | + } |
| 2994 | + }.run(); |
| 2995 | + } |
| 2996 | + |
2698 | 2997 | // this test currently fails because Encounter Date tag is after Obs tag on the form; should be fixed or ticketed |
2699 | 2998 | @Test |
2700 | 2999 | @Ignore |
|
0 commit comments