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  }