blob: f4284f971012bf4de48504886d73e839e48ef015 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jmeter.report.processor
import io.mockk.every
import io.mockk.mockk
import org.apache.jmeter.report.core.Sample
import org.apache.jmeter.report.utils.MetricUtils
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class Top5ErrorsBySamplerConsumerTest {
val sut = Top5ErrorsBySamplerConsumer()
@Test
fun `summary info data updated with non-controller passing sample`() {
val mockSummaryInfo = mockk<AbstractSummaryConsumer<Top5ErrorsSummaryData>.SummaryInfo> {
every { getData() } answers { callOriginal() }
every { setData(any()) } answers { callOriginal() }
}
val mockSample = mockk<Sample>(relaxed = true) {
every { success } returns true
}
sut.updateData(mockSummaryInfo, mockSample)
val data = mockSummaryInfo.getData()
assertEquals(1, data.total, "data.total")
}
@Test
fun `summary info data updated with non-controller failing sample`() {
val mockSummaryInfo = mockk<AbstractSummaryConsumer<Top5ErrorsSummaryData>.SummaryInfo> {
every { getData() } answers { callOriginal() }
every { setData(any()) } answers { callOriginal() }
}
val mockSample = mockk<Sample>(relaxed = true) {
every { responseCode } returns "200"
}
sut.updateData(mockSummaryInfo, mockSample)
val data = mockSummaryInfo.getData()
assertEquals(1, data.total, "data.total")
assertEquals(1, data.errors, "data.errors")
assertEquals(MetricUtils.ASSERTION_FAILED, data.top5ErrorsMetrics[0][0], "data.top5ErrorsMetrics[0][0]")
val overallData = sut.overallInfo.getData()
assertEquals(1, overallData.total, "data.total")
assertEquals(1, overallData.errors, "data.errors")
assertEquals(
MetricUtils.ASSERTION_FAILED,
overallData.top5ErrorsMetrics[0][0],
"overallData.top5ErrorsMetrics[0][0]"
)
}
@Test
fun `key from sample is name`() {
val sample = mockk<Sample> {
every { name } returns "name"
}
assertEquals("name", sut.getKeyFromSample(sample)) {
"getKeyFromSample(sample) should return the name of the sample"
}
}
@Test
fun `there are 3 + 2n expected results title columns`() {
assertEquals(
3 + 2 * Top5ErrorsBySamplerConsumer.MAX_NUMBER_OF_ERRORS_IN_TOP,
sut.createResultTitles().size
) {
".createResultTitles().size should be 3 + 2 * ${Top5ErrorsBySamplerConsumer.MAX_NUMBER_OF_ERRORS_IN_TOP}"
}
}
}