github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/core/rawdata/sql_test.go (about)

     1  package rawdata
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/benoitkugler/goACVE/logs"
     9  )
    10  
    11  func TestConnect(t *testing.T) {
    12  	s, err := ConnectDB(logs.DBDev)
    13  	if err != nil {
    14  		t.Fatal(err)
    15  	}
    16  	defer s.Close()
    17  	if err = s.Ping(); err != nil {
    18  		t.Fatal(err)
    19  	}
    20  }
    21  
    22  func TestSQL(t *testing.T) {
    23  	db := MustConnectDBDev()
    24  	defer db.Close()
    25  	tx, err := db.Begin()
    26  	if err != nil {
    27  		t.Fatal(err)
    28  	}
    29  	defer tx.Rollback()
    30  
    31  	d1 := randPersonne()
    32  	d1, err = queriesPersonne(tx, d1)
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  
    37  	d2 := randCamp()
    38  	d2.InscriptionSimple = false // pour pouvoir ajouter un groupe
    39  	d2, err = queriesCamp(tx, d2)
    40  	if err != nil {
    41  		t.Fatal(err)
    42  	}
    43  
    44  	d2ter := randCamp()
    45  	d2ter.InscriptionSimple = true // pour pouvoir ajouter un participant simple
    46  	d2ter, err = queriesCamp(tx, d2ter)
    47  	if err != nil {
    48  		t.Fatal(err)
    49  	}
    50  
    51  	d2bis := randGroupe()
    52  	d2bis.IdCamp = d2.Id
    53  	d2bis, err = queriesGroupe(tx, d2bis)
    54  	if err != nil {
    55  		t.Fatal(err)
    56  	}
    57  
    58  	d3 := randParticipant()
    59  	d3.IdPersonne = d1.Id
    60  	d3.IdCamp = d2.Id
    61  	d3.IdFacture = NullId()
    62  	d3, err = queriesParticipant(tx, d3)
    63  	if err != nil {
    64  		t.Fatal(err)
    65  	}
    66  
    67  	d3ter := randGroupeParticipant()
    68  	d3ter.IdCamp = d2.Id
    69  	d3ter.IdParticipant = d3.Id
    70  	d3ter.IdGroupe = d2bis.Id
    71  	d3ter, err = queriesGroupeParticipant(tx, d3ter)
    72  	if err != nil {
    73  		t.Fatal(err)
    74  	}
    75  
    76  	d3bis := randParticipantsimple()
    77  	d3bis.IdPersonne = d1.Id
    78  	d3bis.IdCamp = d2ter.Id
    79  	d3bis, err = queriesParticipantsimple(tx, d3bis)
    80  	if err != nil {
    81  		t.Fatal(err)
    82  	}
    83  
    84  	d4 := randStructureaide()
    85  	d4, err = queriesStructureaide(tx, d4)
    86  	if err != nil {
    87  		t.Fatal(err)
    88  	}
    89  
    90  	d5 := randAide()
    91  	d5.IdParticipant = d3.Id
    92  	d5.IdStructureaide = d4.Id
    93  	d5, err = queriesAide(tx, d5)
    94  	if err != nil {
    95  		t.Fatal(err)
    96  	}
    97  
    98  	d6 := randFacture()
    99  	d6.IdPersonne = d1.Id
   100  	d6, err = queriesFacture(tx, d6)
   101  	if err != nil {
   102  		t.Fatal(err)
   103  	}
   104  
   105  	d7 := randPaiement()
   106  	d7.IdFacture = d6.Id
   107  	d7, err = queriesPaiement(tx, d7)
   108  	if err != nil {
   109  		t.Fatal(err)
   110  	}
   111  
   112  	d8 := randEquipier()
   113  	d8.IdPersonne = d1.Id
   114  	d8.IdCamp = d2.Id
   115  	d8, err = queriesEquipier(tx, d8)
   116  	if err != nil {
   117  		t.Fatal(err)
   118  	}
   119  
   120  	d3_1 := randGroupeEquipier()
   121  	d3_1.IdCamp = d2.Id
   122  	d3_1.IdGroupe = d2bis.Id
   123  	d3_1.IdEquipier = d8.Id
   124  	d3_1, err = queriesGroupeEquipier(tx, d3_1)
   125  	if err != nil {
   126  		t.Fatal(err)
   127  	}
   128  
   129  	d3_2 := randParticipantEquipier()
   130  	d3_2.IdGroupe = d2bis.Id
   131  	d3_2.IdEquipier = d8.Id
   132  	d3_2.IdParticipant = d3.Id
   133  	d3_2, err = queriesParticipantEquipier(tx, d3_2)
   134  	if err != nil {
   135  		t.Fatal(err)
   136  	}
   137  
   138  	d9 := randDon()
   139  	d9, err = queriesDon(tx, d9)
   140  	if err != nil {
   141  		t.Fatal(err)
   142  	}
   143  
   144  	d9o := randOrganisme()
   145  	d9o.ContactPropre = true
   146  	d9o.IdContact = NullId()
   147  	d9o.IdContactDon = NewOptionnalId(d1.Id)
   148  	d9o, err = queriesOrganisme(tx, d9o)
   149  	if err != nil {
   150  		t.Fatal(err)
   151  	}
   152  
   153  	d9bis := randDonDonateur()
   154  	d9bis.IdDon = d9.Id
   155  	d9bis.IdPersonne = NewOptionnalId(d1.Id)
   156  	d9bis.IdOrganisme = NullId()
   157  	_, err = queriesDonDonateur(tx, d9bis)
   158  	if err != nil {
   159  		t.Fatal(err)
   160  	}
   161  
   162  	err = d9bis.Delete(tx)
   163  	if err != nil {
   164  		t.Fatal(err)
   165  	}
   166  
   167  	d9bis.IdOrganisme = NewOptionnalId(d9o.Id)
   168  	d9bis.IdPersonne = NullId()
   169  	_, err = queriesDonDonateur(tx, d9bis)
   170  	if err != nil {
   171  		t.Fatal(err)
   172  	}
   173  
   174  	d10 := randGroupe()
   175  	d10.IdCamp = d2.Id
   176  	d10, err = queriesGroupe(tx, d10)
   177  	if err != nil {
   178  		t.Fatal(err)
   179  	}
   180  
   181  	d11 := randMessage()
   182  	d11.IdFacture = d6.Id
   183  	d11, err = queriesMessage(tx, d11)
   184  	if err != nil {
   185  		t.Fatal(err)
   186  	}
   187  
   188  	d12 := randDocument()
   189  	d12, err = queriesDocument(tx, d12)
   190  	if err != nil {
   191  		t.Fatal(err)
   192  	}
   193  
   194  	d12bis := randContrainte()
   195  	d12bis.IdPersonne = NullId()
   196  	d12bis.IdDocument = NullId()
   197  	d12bis, err = queriesContrainte(tx, d12bis)
   198  	if err != nil {
   199  		t.Fatal(err)
   200  	}
   201  
   202  	d13 := randDocumentPersonne()
   203  	d13.IdDocument = d12.Id
   204  	d13.IdPersonne = d1.Id
   205  	d13.IdContrainte = d12bis.Id
   206  	d13, err = queriesDocumentPersonne(tx, d13)
   207  	if err != nil {
   208  		t.Fatal(err)
   209  	}
   210  
   211  	d14 := randContenuDocument()
   212  	d14.IdDocument = d12.Id
   213  	d14, err = queriesContenuDocument(tx, d14)
   214  	if err != nil {
   215  		t.Fatal(err)
   216  	}
   217  
   218  	d15 := randEquipierContrainte()
   219  	d15.IdEquipier = d8.Id
   220  	d15.IdContrainte = d12bis.Id
   221  	d15, err = queriesEquipierContrainte(tx, d15)
   222  	if err != nil {
   223  		t.Fatal(err)
   224  	}
   225  
   226  	d16 := randCampContrainte()
   227  	d16.IdCamp = d2bis.Id
   228  	d16.IdContrainte = d12bis.Id
   229  	d16, err = queriesCampContrainte(tx, d16)
   230  	if err != nil {
   231  		t.Fatal(err)
   232  	}
   233  
   234  	d16bis := randGroupeContrainte()
   235  	d16bis.IdGroupe = d2bis.Id
   236  	d16bis.IdContrainte = d12bis.Id
   237  	d16bis, err = queriesGroupeContrainte(tx, d16bis)
   238  	if err != nil {
   239  		t.Fatal(err)
   240  	}
   241  
   242  	d17 := randDocumentAide()
   243  	d17.IdDocument = d12.Id
   244  	d17.IdAide = d5.Id
   245  	d17, err = queriesDocumentAide(tx, d17)
   246  	if err != nil {
   247  		t.Fatal(err)
   248  	}
   249  
   250  	d18 := randDocumentCamp()
   251  	d18.IdDocument = d12.Id
   252  	d18.IdCamp = d2.Id
   253  	d18, err = queriesDocumentCamp(tx, d18)
   254  	if err != nil {
   255  		t.Fatal(err)
   256  	}
   257  
   258  	d19 := randUser()
   259  	d19, err = queriesUser(tx, d19)
   260  	if err != nil {
   261  		t.Fatal(err)
   262  	}
   263  
   264  	d20 := randSondage()
   265  	d20.IdCamp = d2.Id
   266  	d20.IdFacture = d6.Id
   267  	d20, err = queriesSondage(tx, d20)
   268  	if err != nil {
   269  		t.Fatal(err)
   270  	}
   271  
   272  	d21 := randLettredirecteur()
   273  	d21.IdCamp = d2.Id
   274  	d21, err = queriesLettredirecteur(tx, d21)
   275  	if err != nil {
   276  		t.Fatal(err)
   277  	}
   278  
   279  	d22 := randInscription()
   280  	d22, err = queriesInscription(tx, d22)
   281  	if err != nil {
   282  		t.Fatal(err)
   283  	}
   284  
   285  	if _, err = DeleteInscriptionById(tx, d22.Id); err != nil {
   286  		t.Fatal(err)
   287  	}
   288  	if err = d21.Delete(tx); err != nil {
   289  		t.Fatal(err)
   290  	}
   291  	if _, err = DeleteSondageById(tx, d20.Id); err != nil {
   292  		t.Fatal(err)
   293  	}
   294  	if _, err = DeleteUserById(tx, d19.Id); err != nil {
   295  		t.Fatal(err)
   296  	}
   297  	if err = d18.Delete(tx); err != nil {
   298  		t.Fatal(err)
   299  	}
   300  	if err = d17.Delete(tx); err != nil {
   301  		t.Fatal(err)
   302  	}
   303  	if err = d16bis.Delete(tx); err != nil {
   304  		t.Fatal(err)
   305  	}
   306  	if err = d16.Delete(tx); err != nil {
   307  		t.Fatal(err)
   308  	}
   309  	if err = d15.Delete(tx); err != nil {
   310  		t.Fatal(err)
   311  	}
   312  	if err = d14.Delete(tx); err != nil {
   313  		t.Fatal(err)
   314  	}
   315  	if err = d13.Delete(tx); err != nil {
   316  		t.Fatal(err)
   317  	}
   318  	if _, err = DeleteContrainteById(tx, d12bis.Id); err != nil {
   319  		t.Fatal(err)
   320  	}
   321  	if _, err = DeleteDocumentById(tx, d12.Id); err != nil {
   322  		t.Fatal(err)
   323  	}
   324  	if _, err = DeleteMessageById(tx, d11.Id); err != nil {
   325  		t.Fatal(err)
   326  	}
   327  	if _, err = DeleteGroupeById(tx, d10.Id); err != nil {
   328  		t.Fatal(err)
   329  	}
   330  
   331  	if err = d9bis.Delete(tx); err != nil {
   332  		t.Fatal(err)
   333  	}
   334  	if _, err = DeleteDonById(tx, d9.Id); err != nil {
   335  		t.Fatal(err)
   336  	}
   337  	if _, err = DeleteOrganismeById(tx, d9o.Id); err != nil {
   338  		t.Fatal(err)
   339  	}
   340  
   341  	if _, err = DeleteEquipierById(tx, d8.Id); err != nil {
   342  		t.Fatal(err)
   343  	}
   344  	if _, err = DeletePaiementById(tx, d7.Id); err != nil {
   345  		t.Fatal(err)
   346  	}
   347  	if _, err = DeleteFactureById(tx, d6.Id); err != nil {
   348  		t.Fatal(err)
   349  	}
   350  	if _, err = DeleteAideById(tx, d5.Id); err != nil {
   351  		t.Fatal(err)
   352  	}
   353  	if _, err = DeleteStructureaideById(tx, d4.Id); err != nil {
   354  		t.Fatal(err)
   355  	}
   356  	if err = d3ter.Delete(tx); err != nil {
   357  		t.Fatal(err)
   358  	}
   359  	if _, err = DeleteParticipantsimpleById(tx, d3bis.Id); err != nil {
   360  		t.Fatal(err)
   361  	}
   362  	if _, err = DeleteParticipantById(tx, d3.Id); err != nil {
   363  		t.Fatal(err)
   364  	}
   365  	if _, err = DeleteCampById(tx, d2ter.Id); err != nil {
   366  		t.Fatal(err)
   367  	}
   368  	if _, err = DeleteGroupeById(tx, d2bis.Id); err != nil {
   369  		t.Fatal(err)
   370  	}
   371  	if _, err = DeleteCampById(tx, d2.Id); err != nil {
   372  		t.Fatal(err)
   373  	}
   374  	if _, err = DeletePersonneById(tx, d1.Id); err != nil {
   375  		t.Fatal(err)
   376  	}
   377  }
   378  
   379  func TestScanRoles(t *testing.T) {
   380  	db := MustConnectDBDev()
   381  	defer db.Close()
   382  	tx, err := db.Begin()
   383  	if err != nil {
   384  		t.Fatal(err)
   385  	}
   386  	defer tx.Rollback()
   387  
   388  	d1 := randPersonne()
   389  	d1, err = queriesPersonne(tx, d1)
   390  	if err != nil {
   391  		t.Fatal(err)
   392  	}
   393  
   394  	d2 := randCamp()
   395  	d2.InscriptionSimple = false // pour pouvoir ajouter un équipier
   396  	d2, err = queriesCamp(tx, d2)
   397  	if err != nil {
   398  		t.Fatal(err)
   399  	}
   400  
   401  	d8 := randEquipier()
   402  	d8.IdPersonne = d1.Id
   403  	d8.IdCamp = d2.Id
   404  	d8, err = queriesEquipier(tx, d8)
   405  	if err != nil {
   406  		t.Fatal(err)
   407  	}
   408  
   409  	d8.Roles = Roles{RAnimation, RFactotum, RAutre}
   410  	d8, err = d8.Update(tx)
   411  	if err != nil {
   412  		t.Fatal(err)
   413  	}
   414  	fmt.Println(d8.Roles)
   415  }
   416  
   417  func TestTimeSql(t *testing.T) {
   418  	db := MustConnectDBDev()
   419  	defer db.Close()
   420  	var doc Document
   421  	doc, err := doc.Insert(db)
   422  	if err != nil {
   423  		t.Fatal(err)
   424  	}
   425  	if !time.Time(doc.DateHeureModif).IsZero() {
   426  		t.Error()
   427  	}
   428  	_, _ = DeleteDocumentById(db, doc.Id)
   429  }