github.com/andrewrech/ih-abstract@v0.0.0-20210322142951-2fec1c8d0f38/read_test.go (about) 1 package main 2 3 import ( 4 "log" 5 "os" 6 "strings" 7 "testing" 8 9 "github.com/google/go-cmp/cmp" 10 ) 11 12 func TestReadCSV(t *testing.T) { 13 mock := strings.NewReader(`MRN,MRNFacility,MedViewPatientID,PatientName,DOB,Sex,DrawnDate,DiagServiceID,AccessionNumber,HNAMOrderID,OrderTypeLocalID,OrderTypeMnemonic,TestTypeLocalID,TestTypeMnemonic,ResultDate,Value 14 "1000000001 ","UID",1111111111,"ZZZ, ZZZ",1950006-16 00:00:00.000,M,2020-11-15 05:28:00.000,GL,00000111111111,1111111111,1111111111,CMV,1111111111111,WBC,2014-11-15 05:37:58.000,Test removal on basis of Order 15 `) 16 17 r := readCSV(mock) 18 19 <-r.done 20 21 t.Run("read CSV rows", func(t *testing.T) { 22 var i int64 23 24 for range r.out { 25 i++ 26 } 27 28 diff := cmp.Diff(int64(1), i) 29 30 if diff != "" { 31 t.Fatalf(diff) 32 } 33 }) 34 } 35 36 func BenchmarkReadCSV(b *testing.B) { 37 mock := strings.NewReader(`MRN,MRNFacility,MedViewPatientID,PatientName,DOB,Sex,DrawnDate,DiagServiceID,AccessionNumber,HNAMOrderID,OrderTypeLocalID,OrderTypeMnemonic,TestTypeLocalID,TestTypeMnemonic,ResultDate,Value 38 "1000000001 ","UID",1111111111,"ZZZ, ZZZ",1950006-16 00:00:00.000,M,2020-11-15 05:28:00.000,GL,00000111111111,1111111111,1111111111,CMV,1111111111111,WBC,2014-11-15 05:37:58.000,Test removal on basis of Order 39 `) 40 41 r := readCSV(mock) 42 43 <-r.done 44 45 for i := 0; i < b.N; i++ { 46 var i int64 47 48 for range r.out { 49 i++ 50 } 51 52 } 53 } 54 55 func TestReadSQLRows(t *testing.T) { 56 var config string 57 var present bool 58 59 if config, present = os.LookupEnv("IH_ABSTRACT_TEST_CONFIG"); !present { 60 t.Skip("IH_ABSTRACT_TEST_CONFIG is unset, skipping real SQL test") 61 } 62 63 db, err := connect(config) 64 if err != nil { 65 log.Fatalln(err) 66 } 67 68 vars, err := loadConfig(config) 69 if err != nil { 70 log.Fatalln(err) 71 } 72 73 vars.Query = "SELECT TOP (1000) * FROM [DMEE_ExtAccess].[immune_health].[LabData] WHERE MRNFacility = 'UID' AND DrawnDate >= '2020-01-01'" 74 75 rows, err := db.Query(vars.Query) 76 77 r := readSQLRows(rows) 78 79 var counter int64 80 for range r.out { 81 counter++ 82 } 83 84 <-r.done 85 86 log.Println(counter) 87 } 88 89 func TestRead(t *testing.T) { 90 var f flags 91 sql := false 92 f.sql = &sql 93 94 conn, err := os.Open(TestFile) 95 if err != nil { 96 log.Fatalln(err) 97 } 98 99 r := read(f, conn) 100 <-r.done 101 102 t.Run("read", func(t *testing.T) { 103 for l := range r.out { 104 _ = l 105 } 106 }) 107 } 108 109 func BenchmarkRead(b *testing.B) { 110 var f flags 111 sql := false 112 f.sql = &sql 113 114 for i := 0; i < b.N; i++ { 115 116 conn, err := os.Open(TestFile) 117 if err != nil { 118 log.Fatalln(err) 119 } 120 121 r := read(f, conn) 122 <-r.done 123 } 124 }